summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderForeignObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderForeignObject.cpp')
-rw-r--r--WebCore/rendering/RenderForeignObject.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/WebCore/rendering/RenderForeignObject.cpp b/WebCore/rendering/RenderForeignObject.cpp
index aa28ff0..9f0889b 100644
--- a/WebCore/rendering/RenderForeignObject.cpp
+++ b/WebCore/rendering/RenderForeignObject.cpp
@@ -36,6 +36,7 @@ namespace WebCore {
RenderForeignObject::RenderForeignObject(SVGForeignObjectElement* node)
: RenderSVGBlock(node)
+ , m_needsTransformUpdate(true)
{
}
@@ -99,9 +100,12 @@ void RenderForeignObject::layout()
ASSERT(!view()->layoutStateEnabled()); // RenderSVGRoot disables layoutState for the SVG rendering tree.
LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
-
SVGForeignObjectElement* foreign = static_cast<SVGForeignObjectElement*>(node());
- m_localTransform = foreign->animatedLocalTransform();
+
+ if (m_needsTransformUpdate) {
+ m_localTransform = foreign->animatedLocalTransform();
+ m_needsTransformUpdate = false;
+ }
// Cache viewport boundaries
FloatPoint viewportLocation(foreign->x().value(foreign), foreign->y().value(foreign));