src/gui/painting/qbackingstore.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
--- a/src/gui/painting/qbackingstore.cpp	Fri Apr 16 15:50:13 2010 +0300
+++ b/src/gui/painting/qbackingstore.cpp	Mon May 03 13:17:34 2010 +0300
@@ -352,6 +352,10 @@
     // Always flush repainted areas.
     dirtyOnScreen += toClean;
 
+#ifdef Q_WS_QWS
+    toClean.translate(tlwOffset);
+#endif
+
 #ifdef QT_NO_PAINT_DEBUG
     windowSurface->beginPaint(toClean);
 #else
@@ -766,7 +770,12 @@
     if (decorationRegion.isEmpty())
         return;
 
-    windowSurface->beginPaint(decorationRegion);
+    //### The QWS decorations do not always paint the pixels they promise to paint.
+    // This causes painting problems with QWSMemorySurface. Since none of the other
+    // window surfaces actually use the region, passing an empty region is a safe
+    // workaround.
+
+    windowSurface->beginPaint(QRegion());
 
     QPaintEngine *engine = windowSurface->paintDevice()->paintEngine();
     Q_ASSERT(engine);