summaryrefslogtreecommitdiff
path: root/src/svg/qsvgstructure.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/svg/qsvgstructure.cpp')
-rw-r--r--src/svg/qsvgstructure.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/svg/qsvgstructure.cpp b/src/svg/qsvgstructure.cpp
index 398cd5d..b89608b 100644
--- a/src/svg/qsvgstructure.cpp
+++ b/src/svg/qsvgstructure.cpp
@@ -47,6 +47,8 @@
#include "qlocale.h"
#include "qdebug.h"
+#include <qscopedvaluerollback.h>
+
QT_BEGIN_NAMESPACE
QSvgG::QSvgG(QSvgNode *parent)
@@ -356,8 +358,11 @@ void QSvgSwitch::init()
QRectF QSvgStructureNode::bounds(QPainter *p, QSvgExtraStates &states) const
{
QRectF bounds;
- for (QSvgNode *node : qAsConst(m_renderers))
- bounds |= node->transformedBounds(p, states);
+ if (!m_recursing) {
+ QScopedValueRollback<bool> guard(m_recursing, true);
+ for (QSvgNode *node : qAsConst(m_renderers))
+ bounds |= node->transformedBounds(p, states);
+ }
return bounds;
}