src/gui/painting/qbackingstore.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
equal deleted inserted replaced
18:2f34d5167611 19:fcece45ef507
   350     Q_UNUSED(toCleanIsInTopLevelCoordinates);
   350     Q_UNUSED(toCleanIsInTopLevelCoordinates);
   351 
   351 
   352     // Always flush repainted areas.
   352     // Always flush repainted areas.
   353     dirtyOnScreen += toClean;
   353     dirtyOnScreen += toClean;
   354 
   354 
       
   355 #ifdef Q_WS_QWS
       
   356     toClean.translate(tlwOffset);
       
   357 #endif
       
   358 
   355 #ifdef QT_NO_PAINT_DEBUG
   359 #ifdef QT_NO_PAINT_DEBUG
   356     windowSurface->beginPaint(toClean);
   360     windowSurface->beginPaint(toClean);
   357 #else
   361 #else
   358     returnInfo->wasFlushed = QWidgetBackingStore::flushPaint(tlw, toClean);
   362     returnInfo->wasFlushed = QWidgetBackingStore::flushPaint(tlw, toClean);
   359     // Avoid deadlock with QT_FLUSH_PAINT: the server will wait for
   363     // Avoid deadlock with QT_FLUSH_PAINT: the server will wait for
   764     }
   768     }
   765 
   769 
   766     if (decorationRegion.isEmpty())
   770     if (decorationRegion.isEmpty())
   767         return;
   771         return;
   768 
   772 
   769     windowSurface->beginPaint(decorationRegion);
   773     //### The QWS decorations do not always paint the pixels they promise to paint.
       
   774     // This causes painting problems with QWSMemorySurface. Since none of the other
       
   775     // window surfaces actually use the region, passing an empty region is a safe
       
   776     // workaround.
       
   777 
       
   778     windowSurface->beginPaint(QRegion());
   770 
   779 
   771     QPaintEngine *engine = windowSurface->paintDevice()->paintEngine();
   780     QPaintEngine *engine = windowSurface->paintDevice()->paintEngine();
   772     Q_ASSERT(engine);
   781     Q_ASSERT(engine);
   773     const QRegion oldSystemClip(engine->systemClip());
   782     const QRegion oldSystemClip(engine->systemClip());
   774     engine->setSystemClip(decorationRegion.translated(tlwOffset));
   783     engine->setSystemClip(decorationRegion.translated(tlwOffset));