summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2011-03-09 15:37:19 (GMT)
committerSamuel Rødal <samuel.rodal@nokia.com>2011-03-09 16:40:05 (GMT)
commit09ff8924d5d05b285d9ed6a03817bdf271b6b108 (patch)
treec1dfb7480277a002b814673d8b2c9411b93cae08
parent67685447509302a4e5f3a008f0ec564d169c737b (diff)
downloadQt-09ff8924d5d05b285d9ed6a03817bdf271b6b108.zip
Qt-09ff8924d5d05b285d9ed6a03817bdf271b6b108.tar.gz
Qt-09ff8924d5d05b285d9ed6a03817bdf271b6b108.tar.bz2
Partial update window surfaces always need a repaint before flush.
When we get an Expose, we need to repaint the window surface before we can flush if the window surface doesn't support partial updates, otherwise we'll end up with garbage on the screen. Reviewed-by: Bjørn Erik Nilsen
-rw-r--r--src/gui/painting/qbackingstore.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp
index 83c58c4..4fcff1d 100644
--- a/src/gui/painting/qbackingstore.cpp
+++ b/src/gui/painting/qbackingstore.cpp
@@ -1117,6 +1117,11 @@ void QWidgetBackingStore::sync(QWidget *exposedWidget, const QRegion &exposedReg
return;
}
+ // If there's no partial update support we always need
+ // to do a full repaint before flushing
+ if (!windowSurface->hasPartialUpdateSupport())
+ fullUpdatePending = true;
+
// Nothing to repaint.
if (!isDirty()) {
qt_flush(exposedWidget, exposedRegion, windowSurface, tlw, tlwOffset);