Changeset 698


Ignore:
Timestamp:
Mar 17, 2010, 11:22:11 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

gui: Fixed crash in PMMERGE during resize & move of the top level window with the complex layout (caused by reading outside the bitmap data).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gui/painting/qwindowsurface_raster.cpp

    r651 r698  
    212212
    213213#if 0
    214     qDebug() << "QRasterWindowSurface::flush:" << widget << "wps" << wps
    215              << "br" << br;
     214    qDebug() << "QRasterWindowSurface::flush:" << widget
     215             << "br" << br;
    216216#endif
    217217
     
    225225    QImage img = d->image->image.mirrored();
    226226
     227
     228
     229
     230
     231
     232
    227233    QPoint wOffset = qt_qwidget_data(widget)->wrect.topLeft();
    228     QRect wbr = br.translated(-wOffset);
    229 
    230     br.translate(offset);
     234    QRect wbr = br.translated(-offset - wOffset);
    231235
    232236    BITMAPINFOHEADER2 bmh;
     
    249253    qDebug() << "QRasterWindowSurface::flush:" << widget << "ptls"
    250254             << ptls[0].x << ptls[0].y << ptls[1].x << ptls[1].y
    251              << ptls[2].x << ptls[2].y << ptls[3].x << ptls[3].y;
     255             << ptls[2].x << ptls[2].y << ptls[3].x << ptls[3].y
     256             << "img.size" << img.size() << "img.bits" << img.bits();
    252257#endif
    253258    GpiDrawBits(wps, (PVOID) img.bits(), (PBITMAPINFO2) &bmh, 4, ptls,
     
    256261#elif QT_BITMAP_MIRROR == 2
    257262
     263
     264
     265
     266
     267
     268
    258269    QPoint wOffset = qt_qwidget_data(widget)->wrect.topLeft();
    259     QRect wbr = br.translated(-wOffset);
    260 
    261     br.translate(offset);
     270    QRect wbr = br.translated(-offset - wOffset);
    262271
    263272    BITMAPINFOHEADER2 bmh;
     
    277286    qDebug() << "QRasterWindowSurface::flush:" << widget << "ptls"
    278287             << ptls[0].x << ptls[0].y << ptls[1].x << ptls[1].y
    279              << ptls[2].x << ptls[2].y << ptls[3].x << ptls[3].y;
     288             << ptls[2].x << ptls[2].y << ptls[3].x << ptls[3].y
     289             << "img.size" << d->image->size() << "img.bits" << d->image->bits();
    280290#endif
    281291
     
    289299
    290300    GpiEnableYInversion(wps, oldInversion);
     301
     302
     303
     304
     305
    291306
    292307#elif QT_BITMAP_MIRROR == 3
     
    310325    GpiSetDefaultViewMatrix(wps, 8, &m, TRANSFORM_REPLACE);
    311326
     327
     328
     329
     330
     331
     332
    312333    QPoint wOffset = qt_qwidget_data(widget)->wrect.topLeft();
    313     QRect wbr = br.translated(-wOffset);
    314 
    315     br.translate(offset);
     334    QRect wbr = br.translated(-offset - wOffset);
    316335
    317336    BITMAPINFOHEADER2 bmh;
Note: See TracChangeset for help on using the changeset viewer.