diff options
Diffstat (limited to 'WebCore/rendering/RenderSVGText.cpp')
-rw-r--r-- | WebCore/rendering/RenderSVGText.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/WebCore/rendering/RenderSVGText.cpp b/WebCore/rendering/RenderSVGText.cpp index 12f3cb5..58348db 100644 --- a/WebCore/rendering/RenderSVGText.cpp +++ b/WebCore/rendering/RenderSVGText.cpp @@ -73,7 +73,7 @@ void RenderSVGText::mapLocalToContainer(RenderBoxModelObject* repaintContainer, void RenderSVGText::layout() { ASSERT(needsLayout()); - LayoutRepainter repainter(*this, checkForRepaintDuringLayout()); + LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout()); if (m_needsTransformUpdate) { SVGTextElement* text = static_cast<SVGTextElement*>(node()); @@ -98,6 +98,10 @@ void RenderSVGText::layout() ASSERT(childrenInline()); forceLayoutInlineChildren(); + // Invalidate all resources of this client, if we changed something. + if (m_everHadLayout && selfNeedsLayout()) + RenderSVGResource::invalidateAllResourcesOfRenderer(this); + repainter.repaintAfterLayout(); setNeedsLayout(false); } |