diff options
author | Bjørn Erik Nilsen <bjorn.nilsen@nokia.com> | 2009-10-22 08:46:32 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2009-10-22 12:04:43 (GMT) |
commit | 079202d135908444c418b064928117b4a273e075 (patch) | |
tree | fd6a8ef873ca9ec80ee0b7b462fcee117eff4b57 | |
parent | adc8f1b1e7a91c3807b074a43c18d2b0e31c9a9d (diff) | |
download | Qt-079202d135908444c418b064928117b4a273e075.zip Qt-079202d135908444c418b064928117b4a273e075.tar.gz Qt-079202d135908444c418b064928117b4a273e075.tar.bz2 |
QWidget painting regression on Windows.
Problem occurred on Windows due to a call to repaint() on a top-level
window from setDisabledStyle() in qwidget.cpp. This function is called
whenever a window is blocking. In this particular case the children of
the repainted window are opaque, and should therefore not be repainted,
which also means that the top-level have to subtract the region of the
opaque children when filling the background. This region is cached,
and the problem was that the cached region was wrong. It was wrong
because it was not invalidated properly.
Task: QTBUG-4245
Reviewed-by: Paul
-rw-r--r-- | src/gui/kernel/qwidget.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 3e65101..85c1955 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -6954,7 +6954,7 @@ void QWidget::setVisible(bool visible) break; parent = parent->parentWidget(); } - if (parent && !d->getOpaqueRegion().isEmpty()) + if (parent) parent->d_func()->setDirtyOpaqueRegion(); } |