diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2011-03-09 15:37:19 (GMT) |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2011-03-09 16:40:05 (GMT) |
commit | 09ff8924d5d05b285d9ed6a03817bdf271b6b108 (patch) | |
tree | c1dfb7480277a002b814673d8b2c9411b93cae08 | |
parent | 67685447509302a4e5f3a008f0ec564d169c737b (diff) | |
download | Qt-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.cpp | 5 |
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); |