Index: Source/core/rendering/svg/SVGRenderSupport.cpp |
diff --git a/Source/core/rendering/svg/SVGRenderSupport.cpp b/Source/core/rendering/svg/SVGRenderSupport.cpp |
index 722c7164e069689af4adc9f5fab26a3a1da5cd91..95a45f1ce22d205cdc781734f7c997c58ce20fa7 100644 |
--- a/Source/core/rendering/svg/SVGRenderSupport.cpp |
+++ b/Source/core/rendering/svg/SVGRenderSupport.cpp |
@@ -94,16 +94,22 @@ const RenderObject* SVGRenderSupport::pushMappingToContainer(const RenderObject* |
return parent; |
} |
-bool SVGRenderSupport::checkForSVGRepaintDuringLayout(RenderObject* object) |
+bool SVGRenderSupport::parentTransformDidChange(RenderObject* object) |
{ |
- if (!object->checkForRepaintDuringLayout()) |
- return false; |
// When a parent container is transformed in SVG, all children will be painted automatically |
// so we are able to skip redundant repaint checks. |
RenderObject* parent = object->parent(); |
return !(parent && parent->isSVGContainer() && toRenderSVGContainer(parent)->didTransformToRootUpdate()); |
} |
+bool SVGRenderSupport::checkForSVGRepaintDuringLayout(RenderObject* object) |
+{ |
+ if (!object->checkForRepaintDuringLayout()) |
+ return false; |
+ |
+ return parentTransformDidChange(object); |
+} |
+ |
bool SVGRenderSupport::paintInfoIntersectsRepaintRect(const FloatRect& localRepaintRect, const AffineTransform& localTransform, const PaintInfo& paintInfo) |
{ |
return localTransform.mapRect(localRepaintRect).intersects(paintInfo.rect); |