| Index: Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGModelObject.cpp b/Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| index 15679791569f254950edbde84f9cc9cffea4ae77..64e1b84a1119d8eb390ebd76529ceb3613962b20 100644
|
| --- a/Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| @@ -33,6 +33,7 @@
|
| #include "core/rendering/svg/RenderSVGModelObject.h"
|
|
|
| #include "SVGNames.h"
|
| +#include "core/rendering/RenderView.h"
|
| #include "core/rendering/svg/RenderSVGRoot.h"
|
| #include "core/rendering/svg/SVGResourcesCache.h"
|
| #include "core/svg/SVGGraphicsElement.h"
|
| @@ -123,4 +124,35 @@ void RenderSVGModelObject::absoluteFocusRingQuads(Vector<FloatQuad>& quads)
|
| quads.append(localToAbsoluteQuad(FloatQuad(repaintRectInLocalCoordinates())));
|
| }
|
|
|
| +void RenderSVGModelObject::repaintTreeAfterLayout()
|
| +{
|
| + // Note: This is a reduced version of RenderBox::repaintTreeAfterLayout().
|
| + // FIXME: Should share code with RenderBox::repaintTreeAfterLayout().
|
| + LayoutStateDisabler layoutStateDisabler(*this);
|
| +
|
| + ASSERT(RuntimeEnabledFeatures::repaintAfterLayoutEnabled());
|
| + ASSERT(!needsLayout());
|
| +
|
| + const LayoutRect oldRepaintRect = previousRepaintRect();
|
| + const LayoutPoint oldPositionFromRepaintContainer = previousPositionFromRepaintContainer();
|
| + RenderLayerModelObject* repaintContainer = containerForRepaint();
|
| + setPreviousRepaintRect(clippedOverflowRectForRepaint(repaintContainer));
|
| + setPreviousPositionFromRepaintContainer(positionFromRepaintContainer(repaintContainer));
|
| +
|
| + // If we are set to do a full repaint that means the RenderView will be
|
| + // invalidated. We can then skip issuing of invalidations for the child
|
| + // renderers as they'll be covered by the RenderView.
|
| + if (view()->doingFullRepaint()) {
|
| + RenderObject::repaintTreeAfterLayout();
|
| + return;
|
| + }
|
| +
|
| + const LayoutRect& newRepaintRect = previousRepaintRect();
|
| + const LayoutPoint& newPositionFromRepaintContainer = previousPositionFromRepaintContainer();
|
| + repaintAfterLayoutIfNeeded(containerForRepaint(),
|
| + shouldDoFullRepaintAfterLayout(), oldRepaintRect, oldPositionFromRepaintContainer, &newRepaintRect, &newPositionFromRepaintContainer);
|
| +
|
| + RenderObject::repaintTreeAfterLayout();
|
| +}
|
| +
|
| } // namespace WebCore
|
|
|