diff options
Diffstat (limited to 'WebCore/rendering/RenderPath.cpp')
-rw-r--r-- | WebCore/rendering/RenderPath.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/WebCore/rendering/RenderPath.cpp b/WebCore/rendering/RenderPath.cpp index 27d480d..dd79397 100644 --- a/WebCore/rendering/RenderPath.cpp +++ b/WebCore/rendering/RenderPath.cpp @@ -97,7 +97,7 @@ bool RenderPath::strokeContains(const FloatPoint& point, bool requiresStroke) co void RenderPath::layout() { - LayoutRepainter repainter(*this, checkForRepaintDuringLayout() && selfNeedsLayout()); + LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout()); SVGStyledTransformableElement* element = static_cast<SVGStyledTransformableElement*>(node()); bool needsPathUpdate = m_needsPathUpdate; @@ -111,6 +111,10 @@ void RenderPath::layout() m_needsTransformUpdate = false; } + // Invalidate all resources of this client, if we changed something. + if (m_everHadLayout && selfNeedsLayout()) + RenderSVGResource::invalidateAllResourcesOfRenderer(this); + // At this point LayoutRepainter already grabbed the old bounds, // recalculate them now so repaintAfterLayout() uses the new bounds if (needsPathUpdate || m_needsBoundariesUpdate) { |