void SVGMaskElement::svgAttributeChanged(const QualifiedName& attrName) { bool isLengthAttr = attrName == SVGNames::xAttr || attrName == SVGNames::yAttr || attrName == SVGNames::widthAttr || attrName == SVGNames::heightAttr; if (isLengthAttr || attrName == SVGNames::maskUnitsAttr || attrName == SVGNames::maskContentUnitsAttr || SVGTests::isKnownAttribute(attrName)) { SVGElement::InvalidationGuard invalidationGuard(this); if (isLengthAttr) { invalidateSVGPresentationAttributeStyle(); setNeedsStyleRecalc(LocalStyleChange, StyleChangeReasonForTracing::fromAttribute(attrName)); updateRelativeLengthsInformation(); } LayoutSVGResourceContainer* layoutObject = toLayoutSVGResourceContainer(this->layoutObject()); if (layoutObject) layoutObject->invalidateCacheAndMarkForLayout(); return; } SVGElement::svgAttributeChanged(attrName); }
void SVGRadialGradientElement::svgAttributeChanged(const QualifiedName& attrName) { if (!isSupportedAttribute(attrName)) { SVGGradientElement::svgAttributeChanged(attrName); return; } SVGElement::InvalidationGuard invalidationGuard(this); updateRelativeLengthsInformation(); LayoutSVGResourceContainer* renderer = toLayoutSVGResourceContainer(this->layoutObject()); if (renderer) renderer->invalidateCacheAndMarkForLayout(); }
void SVGPatternElement::svgAttributeChanged(const QualifiedName& attrName) { if (!isSupportedAttribute(attrName)) { SVGElement::svgAttributeChanged(attrName); return; } SVGElement::InvalidationGuard invalidationGuard(this); if (attrName == SVGNames::xAttr || attrName == SVGNames::yAttr || attrName == SVGNames::widthAttr || attrName == SVGNames::heightAttr) updateRelativeLengthsInformation(); LayoutSVGResourceContainer* renderer = toLayoutSVGResourceContainer(this->layoutObject()); if (renderer) renderer->invalidateCacheAndMarkForLayout(); }