summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorAlexis Menard <alexis.menard@nokia.com>2009-11-26 12:47:34 (GMT)
committerAlexis Menard <alexis.menard@nokia.com>2009-11-26 12:54:53 (GMT)
commit705880f0045ac39140f980d69aec68869213e379 (patch)
tree5c37a0a02fdb5779e6f8e07db4169d4f65733b64 /src/gui
parentc77a556265847529bb1c55ce3c8ae21080161f38 (diff)
downloadQt-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.h3
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;
}
}