summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qbackingstore_p.h
diff options
context:
space:
mode:
authorBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-08-20 18:29:56 (GMT)
committerBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-08-20 20:09:52 (GMT)
commitee2670460af760bf07c47950a8cca37bd6814f2b (patch)
treef55d6213005f4fe0deee90ea53e9c2e106c3ab7b /src/gui/painting/qbackingstore_p.h
parent1ffed52434741aa31b1549a931f6b446b2aaabd0 (diff)
downloadQt-ee2670460af760bf07c47950a8cca37bd6814f2b.zip
Qt-ee2670460af760bf07c47950a8cca37bd6814f2b.tar.gz
Qt-ee2670460af760bf07c47950a8cca37bd6814f2b.tar.bz2
Fix the most obvious rendering bugs when applying an effect to QWidget.
Diffstat (limited to 'src/gui/painting/qbackingstore_p.h')
-rw-r--r--src/gui/painting/qbackingstore_p.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gui/painting/qbackingstore_p.h b/src/gui/painting/qbackingstore_p.h
index ddc0a59..b21d504 100644
--- a/src/gui/painting/qbackingstore_p.h
+++ b/src/gui/painting/qbackingstore_p.h
@@ -144,9 +144,13 @@ private:
inline void addDirtyWidget(QWidget *widget, const QRegion &rgn)
{
if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) {
- widget->d_func()->dirty = rgn;
+ QWidgetPrivate *widgetPrivate = widget->d_func();
+ if (widgetPrivate->graphicsEffect)
+ widgetPrivate->dirty = widgetPrivate->effectiveRectFor(rgn.boundingRect());
+ else
+ widgetPrivate->dirty = rgn;
dirtyWidgets.append(widget);
- widget->d_func()->inDirtyList = true;
+ widgetPrivate->inDirtyList = true;
}
}