diff options
author | Alexis Menard <alexis.menard@nokia.com> | 2009-11-26 12:47:34 (GMT) |
---|---|---|
committer | Alexis Menard <alexis.menard@nokia.com> | 2009-11-26 12:54:53 (GMT) |
commit | 705880f0045ac39140f980d69aec68869213e379 (patch) | |
tree | 5c37a0a02fdb5779e6f8e07db4169d4f65733b64 /src/gui | |
parent | c77a556265847529bb1c55ce3c8ae21080161f38 (diff) | |
download | Qt-705880f0045ac39140f980d69aec68869213e379.zip Qt-705880f0045ac39140f980d69aec68869213e379.tar.gz Qt-705880f0045ac39140f980d69aec68869213e379.tar.bz2 |
Fix a crash in KDE/Plasma with QGraphicsView. TopLevel list of items
was corrupted.
This nasty bug was triggered when the index sort the top level list of
items. We forgot to set the flag topLevelSequentialOrdering to false
so when an item was removed from the top level list it was using the
sibling index which can be not valid anymore since the list is not
sorted by sequential order. So it let some dangling pointers in the
list which make processDirtyItemRecursive crash the next paint event.
Reviewed-by:bnilsen
Reviewed-by:andreas
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/graphicsview/qgraphicsscene_p.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gui/graphicsview/qgraphicsscene_p.h b/src/gui/graphicsview/qgraphicsscene_p.h index a1d0496..69e4d5b 100644 --- a/src/gui/graphicsview/qgraphicsscene_p.h +++ b/src/gui/graphicsview/qgraphicsscene_p.h @@ -78,7 +78,7 @@ class QGraphicsSceneIndex; class QGraphicsView; class QGraphicsWidget; -class QGraphicsScenePrivate : public QObjectPrivate +class Q_AUTOTEST_EXPORT QGraphicsScenePrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QGraphicsScene) public: @@ -265,6 +265,7 @@ public: { if (needSortTopLevelItems) { qSort(topLevelItems.begin(), topLevelItems.end(), qt_notclosestLeaf); + topLevelSequentialOrdering = false; needSortTopLevelItems = false; } } |