diff options
author | Bjoern Erik Nilsen <bjorn.nilsen@nokia.com> | 2009-03-24 14:50:26 (GMT) |
---|---|---|
committer | Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com> | 2009-04-06 11:49:47 (GMT) |
commit | 0d959a6c402ea3a3a55d7076d453d4bdbf8dce8e (patch) | |
tree | e62dfa5843fea4841e2ad781ed15dad94ddc9e8b /src/gui/graphicsview/qgraphicsview.cpp | |
parent | deccc867b244fbc52ca58e21623febbc27310b05 (diff) | |
download | Qt-0d959a6c402ea3a3a55d7076d453d4bdbf8dce8e.zip Qt-0d959a6c402ea3a3a55d7076d453d4bdbf8dce8e.tar.gz Qt-0d959a6c402ea3a3a55d7076d453d4bdbf8dce8e.tar.bz2 |
Fixes: Discard update requests if possible.
AutoTest: Still pass.
Details: Update requests can be discarded if the item itself is
clipped away and the item clips all its children to shape.
This cut-off is extremely effective (and aggressive:))
Diffstat (limited to 'src/gui/graphicsview/qgraphicsview.cpp')
-rw-r--r-- | src/gui/graphicsview/qgraphicsview.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index 9191fc5..43263da 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -855,6 +855,8 @@ void QGraphicsViewPrivate::_q_updateLaterSlot() const QList<QGraphicsItem *> &dirtyItems = scene->d_func()->dirtyItems; for (int i = 0; i < dirtyItems.size(); ++i) { const QGraphicsItem *item = dirtyItems.at(i); + if (item->d_ptr->discardUpdateRequest()) + continue; QTransform x = item->sceneTransform() * viewTransform; updateRect(x.mapRect(item->boundingRect()).toAlignedRect() & vr); } |