Index: Source/core/svg/SVGGradientElement.cpp |
diff --git a/Source/core/svg/SVGGradientElement.cpp b/Source/core/svg/SVGGradientElement.cpp |
index 18e7813cba76c0c8ad8db48fdf0a5cdcccb702b8..e39b0f7d0b4e8a46347b5272fc7f51f9624a6138 100644 |
--- a/Source/core/svg/SVGGradientElement.cpp |
+++ b/Source/core/svg/SVGGradientElement.cpp |
@@ -57,6 +57,21 @@ SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document& d |
addToPropertyMap(m_gradientUnits); |
} |
+bool SVGGradientElement::isPresentationAttribute(const QualifiedName& name) const |
+{ |
+ if (name == SVGNames::gradientTransformAttr) |
+ return true; |
+ return SVGElement::isPresentationAttribute(name); |
+} |
+ |
+void SVGGradientElement::collectStyleForPresentationAttribute(const QualifiedName& name, const AtomicString& value, MutableStylePropertySet* style) |
+{ |
+ if (name == SVGNames::gradientTransformAttr) |
+ addPropertyToPresentationAttributeStyle(style, CSSPropertyTransform, value); |
+ else |
+ SVGElement::collectStyleForPresentationAttribute(name, value, style); |
+} |
+ |
bool SVGGradientElement::isSupportedAttribute(const QualifiedName& attrName) |
{ |
DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ()); |
@@ -81,6 +96,11 @@ void SVGGradientElement::svgAttributeChanged(const QualifiedName& attrName) |
return; |
} |
+ if (attrName == SVGNames::gradientTransformAttr) { |
+ invalidateSVGPresentationAttributeStyle(); |
+ setNeedsStyleRecalc(LocalStyleChange); |
+ } |
+ |
SVGElement::InvalidationGuard invalidationGuard(this); |
RenderSVGResourceContainer* renderer = toRenderSVGResourceContainer(this->renderer()); |