diff options
Diffstat (limited to 'WebCore/rendering/RenderForeignObject.cpp')
| -rw-r--r-- | WebCore/rendering/RenderForeignObject.cpp | 8 |
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)); |
