summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.cpp3
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp9
2 files changed, 7 insertions, 5 deletions
diff --git a/src/widgets/graphicsview/qgraphicsscene.cpp b/src/widgets/graphicsview/qgraphicsscene.cpp
index 7cc694a613..37af4ecda0 100644
--- a/src/widgets/graphicsview/qgraphicsscene.cpp
+++ b/src/widgets/graphicsview/qgraphicsscene.cpp
@@ -3215,7 +3215,8 @@ void QGraphicsScene::update(const QRectF &rect)
view->d_func()->updateRectF(rect);
}
} else {
- d->updatedRects << rect;
+ if (!d->updatedRects.contains(rect))
+ d->updatedRects << rect;
}
}
diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
index 1130a47260..27eac03880 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -2206,10 +2206,11 @@ void tst_QGraphicsItem::setMatrix()
QCOMPARE(spy.count(), 3);
QList<QRectF> rlist = qvariant_cast<QList<QRectF> >(spy.last().at(0));
- QCOMPARE(rlist.size(), 3);
- QCOMPARE(rlist.at(0), rotatedRect); // From item.setMatrix() (clearing rotated rect)
- QCOMPARE(rlist.at(1), rotatedRect); // From scene.update() (updating scene rect)
- QCOMPARE(rlist.at(2), unrotatedRect); // From post-update (update current state)
+ QCOMPARE(rlist.size(), 2);
+ // From item.setMatrix() (clearing rotated rect), from scene.update() (updating scene rect),
+ // squashed into one
+ QCOMPARE(rlist.at(0), rotatedRect);
+ QCOMPARE(rlist.at(1), unrotatedRect); // From post-update (update current state)
}
static QList<QGraphicsItem *> _paintedItems;