src/gui/painting/qbackingstore.cpp
changeset 37 758a864f9613
parent 33 3e2da88830cd
--- a/src/gui/painting/qbackingstore.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qbackingstore.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -352,7 +352,7 @@
     // Always flush repainted areas.
     dirtyOnScreen += toClean;
 
-#ifdef Q_WS_QWS
+#if defined(Q_WS_QWS) && !defined(Q_BACKINGSTORE_SUBSURFACES)
     toClean.translate(tlwOffset);
 #endif
 
@@ -1294,7 +1294,12 @@
 #ifdef Q_BACKINGSTORE_SUBSURFACES
         QWindowSurface *subSurface = w->windowSurface();
         BeginPaintInfo beginPaintInfo;
-        beginPaint(toBePainted, w, subSurface, &beginPaintInfo, false);
+
+        QPoint off = w->mapTo(tlw, QPoint());
+        toBePainted.translate(off);
+        beginPaint(toBePainted, w, subSurface, &beginPaintInfo, true);
+        toBePainted.translate(-off);
+
         if (beginPaintInfo.nothingToPaint)
             continue;