diff options
author | Ben Murdoch <benm@google.com> | 2010-07-22 15:37:06 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-07-27 10:20:25 +0100 |
commit | 967717af5423377c967781471ee106e2bb4e11c8 (patch) | |
tree | 1e701dc0a12f7f07cce1df4a7681717de77a211b /WebCore/rendering/RenderForeignObject.cpp | |
parent | dcc30a9fca45f634b1d3a12b276d3a0ccce99fc3 (diff) | |
download | external_webkit-967717af5423377c967781471ee106e2bb4e11c8.zip external_webkit-967717af5423377c967781471ee106e2bb4e11c8.tar.gz external_webkit-967717af5423377c967781471ee106e2bb4e11c8.tar.bz2 |
Merge WebKit at r63859 : Initial merge by git.
Change-Id: Ie8096c63ec7c991c9a9cba8bdd9c3b74a3b8ed62
Diffstat (limited to 'WebCore/rendering/RenderForeignObject.cpp')
-rw-r--r-- | WebCore/rendering/RenderForeignObject.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/WebCore/rendering/RenderForeignObject.cpp b/WebCore/rendering/RenderForeignObject.cpp index 4b94bab..8b84f97 100644 --- a/WebCore/rendering/RenderForeignObject.cpp +++ b/WebCore/rendering/RenderForeignObject.cpp @@ -26,6 +26,7 @@ #include "RenderForeignObject.h" #include "GraphicsContext.h" +#include "RenderSVGResource.h" #include "RenderView.h" #include "SVGForeignObjectElement.h" #include "SVGRenderSupport.h" @@ -98,7 +99,7 @@ void RenderForeignObject::layout() ASSERT(needsLayout()); ASSERT(!view()->layoutStateEnabled()); // RenderSVGRoot disables layoutState for the SVG rendering tree. - LayoutRepainter repainter(*this, checkForRepaintDuringLayout()); + LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout()); SVGForeignObjectElement* foreign = static_cast<SVGForeignObjectElement*>(node()); if (m_needsTransformUpdate) { @@ -118,6 +119,10 @@ void RenderForeignObject::layout() setLocation(roundedIntPoint(viewportLocation)); RenderBlock::layout(); + // Invalidate all resources of this client, if we changed something. + if (m_everHadLayout && selfNeedsLayout()) + RenderSVGResource::invalidateAllResourcesOfRenderer(this); + repainter.repaintAfterLayout(); setNeedsLayout(false); } |