diff options
Diffstat (limited to 'WebCore/svg/SVGUseElement.cpp')
-rw-r--r-- | WebCore/svg/SVGUseElement.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/WebCore/svg/SVGUseElement.cpp b/WebCore/svg/SVGUseElement.cpp index 5ca560a..e42a794 100644 --- a/WebCore/svg/SVGUseElement.cpp +++ b/WebCore/svg/SVGUseElement.cpp @@ -32,6 +32,7 @@ #include "HTMLNames.h" #include "NodeRenderStyle.h" #include "RegisteredEventListener.h" +#include "RenderSVGResource.h" #include "RenderSVGShadowTreeRootContainer.h" #include "SVGElementInstance.h" #include "SVGElementInstanceList.h" @@ -142,7 +143,8 @@ void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName) if (isXYAttribute || isWidthHeightAttribute) updateRelativeLengthsInformation(); - if (!renderer()) + RenderObject* object = renderer(); + if (!object) return; if (SVGURIReference::isKnownAttribute(attrName)) { @@ -173,8 +175,8 @@ void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName) } if (SVGStyledTransformableElement::isKnownAttribute(attrName)) { - renderer()->setNeedsTransformUpdate(); - renderer()->setNeedsLayout(true); + object->setNeedsTransformUpdate(); + RenderSVGResource::markForLayoutAndParentResourceInvalidation(object); return; } @@ -256,8 +258,8 @@ void SVGUseElement::updateContainerSizes() // Update whole subtree, scanning for shadow container elements, that correspond to <svg>/<symbol> tags updateContainerSize(this, m_targetElementInstance.get()); - if (renderer()) - renderer()->setNeedsLayout(true); + if (RenderObject* object = renderer()) + RenderSVGResource::markForLayoutAndParentResourceInvalidation(object); } static void updateContainerOffset(SVGElementInstance* targetInstance) @@ -308,8 +310,8 @@ void SVGUseElement::updateContainerOffsets() // Update whole subtree, scanning for shadow container elements, marking a cloned use subtree updateContainerOffset(m_targetElementInstance.get()); - if (renderer()) - renderer()->setNeedsLayout(true); + if (RenderObject* object = renderer()) + RenderSVGResource::markForLayoutAndParentResourceInvalidation(object); } void SVGUseElement::recalcStyle(StyleChange change) |