diff options
author | Bjørn Erik Nilsen <bjorn.nilsen@nokia.com> | 2009-08-20 18:29:56 (GMT) |
---|---|---|
committer | Bjørn Erik Nilsen <bjorn.nilsen@nokia.com> | 2009-08-20 20:09:52 (GMT) |
commit | ee2670460af760bf07c47950a8cca37bd6814f2b (patch) | |
tree | f55d6213005f4fe0deee90ea53e9c2e106c3ab7b /src/gui/painting/qbackingstore_p.h | |
parent | 1ffed52434741aa31b1549a931f6b446b2aaabd0 (diff) | |
download | Qt-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.h | 8 |
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; } } |