summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Erik Nilsen <bjorn.nilsen@nokia.com>2009-03-23 14:54:30 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2009-04-15 10:19:35 (GMT)
commita9ccf83b7b93891055efc46783f26dc4e9983e4a (patch)
tree2e85631fe70d36669c2e2c77ec6b3a06b7c81dea
parent337e49cf264c460cd50992aca6b11cb47e8053c0 (diff)
downloadQt-a9ccf83b7b93891055efc46783f26dc4e9983e4a.zip
Qt-a9ccf83b7b93891055efc46783f26dc4e9983e4a.tar.gz
Qt-a9ccf83b7b93891055efc46783f26dc4e9983e4a.tar.bz2
Fixes: Optimization: Clip path is empty if the bounding rect is empty.
RevBy: TrustMe (cherry picked from commit 95fa7a93bc840e0f49ee30e76abb2b4f8579c997)
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 52f0b59..6dd8529 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -3151,9 +3151,18 @@ QPainterPath QGraphicsItem::clipPath() const
return d->cachedClipPath;
}
+ const QRectF thisBoundingRect(boundingRect());
+ if (thisBoundingRect.isEmpty()) {
+ if (d_ptr->flags & ItemClipsChildrenToShape)
+ d_ptr->setEmptyCachedClipPathRecursively();
+ else
+ d_ptr->setEmptyCachedClipPath();
+ return QPainterPath();
+ }
+
QPainterPath clip;
// Start with the item's bounding rect.
- clip.addRect(boundingRect());
+ clip.addRect(thisBoundingRect);
if (d->ancestorFlags & QGraphicsItemPrivate::AncestorClipsChildren) {
const QGraphicsItem *parent = this;