diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2009-04-25 09:06:28 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-04-25 09:06:28 (GMT) |
commit | 9c160157d9617866ae792480a46877dcd82b9e91 (patch) | |
tree | 0f4610709807ad87536ebb19ba6df23c6eed43b9 /src/gui/kernel | |
parent | dae9a234412d09c1af67a34262637bdc6e8c0845 (diff) | |
parent | 8b5a400581b9c037d12a9f49e075b187edcb0b00 (diff) | |
download | Qt-9c160157d9617866ae792480a46877dcd82b9e91.zip Qt-9c160157d9617866ae792480a46877dcd82b9e91.tar.gz Qt-9c160157d9617866ae792480a46877dcd82b9e91.tar.bz2 |
Merge branch '4.5' of git@scm.dev.troll.no:qt/qt
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qwidget.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index b38c4bd..1635912 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -4714,10 +4714,13 @@ void QWidget::render(QPaintDevice *target, const QPoint &targetOffset, if (redirected) { target = redirected; offset -= redirectionOffset; - if (!inRenderWithPainter) { // Clip handled by shared painter (in qpainter.cpp). - const QRegion redirectedSystemClip = redirected->paintEngine()->systemClip(); - if (!redirectedSystemClip.isEmpty()) - paintRegion &= redirectedSystemClip.translated(-offset); + } + + if (!inRenderWithPainter) { // Clip handled by shared painter (in qpainter.cpp). + if (QPaintEngine *targetEngine = target->paintEngine()) { + const QRegion targetSystemClip = targetEngine->systemClip(); + if (!targetSystemClip.isEmpty()) + paintRegion &= targetSystemClip.translated(-offset); } } |