summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-10-22 08:46:32 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-10-22 12:04:43 (GMT)
commit079202d135908444c418b064928117b4a273e075 (patch)
treefd6a8ef873ca9ec80ee0b7b462fcee117eff4b57
parentadc8f1b1e7a91c3807b074a43c18d2b0e31c9a9d (diff)
downloadQt-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.cpp2
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();
}