summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-07-21 19:19:36 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-07-21 19:19:36 (GMT)
commit07f131927faa09402589da7b4bfb516482f59e46 (patch)
tree9b1c7fdec802bbcb9b183d5644d02d8cc4435da2 /src/gui/graphicsview
parent19924c1373e6acdf4ebf8cf61c51f3cdf32978b3 (diff)
parentd00d1bd5423d0bbfea7c85a0411d2b22d97fbe0f (diff)
downloadQt-07f131927faa09402589da7b4bfb516482f59e46.zip
Qt-07f131927faa09402589da7b4bfb516482f59e46.tar.gz
Qt-07f131927faa09402589da7b4bfb516482f59e46.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Use aligned load for the blending of RGB32 over RGB32 tst_moc: workaround gcc bug. Some more change to the changelog Fix compilation with QT_NO_GRAPHICSVIEW Updates changes-4.7.0 Fixes the Oracle nchar bug when NLS_CHARSET is different with NLS_NCHAR_CHARSET. Add a missing file in the config.test for SSE 4.2 Remove the masking when computing qAlpha() Add support for more vector instructions on x86 Workaround gcc bug, disable test with old version of gcc Do not crash due to a infinite recursion when using voiceover on MacOS doc: Fix qdoc errors for text related files QGraphicsItem: Animation leaves drawing artifacts when clipping is used. moc: Slot with complex template default value does not compile
Diffstat (limited to 'src/gui/graphicsview')
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 4bc7f4c..48a0093 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -5178,7 +5178,12 @@ void QGraphicsScenePrivate::processDirtyItemsRecursive(QGraphicsItem *item, bool
// Process children.
if (itemHasChildren && item->d_ptr->dirtyChildren) {
const bool itemClipsChildrenToShape = item->d_ptr->flags & QGraphicsItem::ItemClipsChildrenToShape;
- if (itemClipsChildrenToShape) {
+ // Items with no content are threated as 'dummy' items which means they are never drawn and
+ // 'processed', so the painted view bounding rect is never up-to-date. This means that whenever
+ // such an item changes geometry, its children have to take care of the update regardless
+ // of whether the item clips children to shape or not.
+ const bool bypassUpdateClip = !itemHasContents && wasDirtyParentViewBoundingRects;
+ if (itemClipsChildrenToShape && !bypassUpdateClip) {
// Make sure child updates are clipped to the item's bounding rect.
for (int i = 0; i < views.size(); ++i)
views.at(i)->d_func()->setUpdateClip(item);