Ignore:
Timestamp:
May 5, 2011, 5:36:53 AM (14 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/painting/qoutlinemapper.cpp

    r651 r846  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    155155
    156156        m_elements.resize(count);
    157         memcpy(m_elements.data(), path.points(), count* sizeof(QPointF));
     157        if (count)
     158            memcpy(m_elements.data(), path.points(), count* sizeof(QPointF));
    158159
    159160        m_element_types.resize(0);
     
    234235
    235236    // Check for out of dev bounds...
    236     const bool do_clip = (controlPointRect.left() < -QT_RASTER_COORD_LIMIT
     237    const bool do_clip = !m_in_clip_elements && ((controlPointRect.left() < -QT_RASTER_COORD_LIMIT
    237238                          || controlPointRect.right() > QT_RASTER_COORD_LIMIT
    238239                          || controlPointRect.top() < -QT_RASTER_COORD_LIMIT
    239240                          || controlPointRect.bottom() > QT_RASTER_COORD_LIMIT
    240241                          || controlPointRect.width() > QT_RASTER_COORD_LIMIT
    241                           || controlPointRect.height() > QT_RASTER_COORD_LIMIT);
     242                          || controlPointRect.height() > QT_RASTER_COORD_LIMIT));
    242243
    243244    if (do_clip) {
     
    353354    // this part of code hardly every used, it shouldn't matter.
    354355
     356    m_in_clip_elements = true;
     357
    355358    QPainterPath path;
     359
     360    if (!(m_outline.flags & QT_FT_OUTLINE_EVEN_ODD_FILL))
     361        path.setFillRule(Qt::WindingFill);
     362
    356363    if (types) {
    357364        for (int i=0; i<element_count; ++i) {
     
    389396        convertPath(clippedPath);
    390397    m_txop = old_txop;
     398
     399    m_in_clip_elements = false;
    391400}
    392401
Note: See TracChangeset for help on using the changeset viewer.