void SVGPathElement::svgAttributeChanged(const QualifiedName& attrName) { if (attrName == SVGNames::dAttr) { SVGElement::InvalidationGuard invalidationGuard(this); invalidateSVGPresentationAttributeStyle(); setNeedsStyleRecalc(LocalStyleChange, StyleChangeReasonForTracing::fromAttribute(attrName)); if (LayoutSVGShape* layoutPath = toLayoutSVGShape(this->layoutObject())) layoutPath->setNeedsShapeUpdate(); invalidateMPathDependencies(); if (layoutObject()) markForLayoutAndParentResourceInvalidation(layoutObject()); return; } if (attrName == SVGNames::pathLengthAttr) { SVGElement::InvalidationGuard invalidationGuard(this); if (layoutObject()) markForLayoutAndParentResourceInvalidation(layoutObject()); return; } SVGGeometryElement::svgAttributeChanged(attrName); }
void SVGPathElement::svgAttributeChanged(const QualifiedName& attrName) { if (!isSupportedAttribute(attrName)) { SVGGraphicsElement::svgAttributeChanged(attrName); return; } InstanceInvalidationGuard guard(*this); RenderSVGPath* renderer = downcast<RenderSVGPath>(this->renderer()); if (attrName == SVGNames::dAttr) { if (m_pathSegList.shouldSynchronize && !SVGAnimatedProperty::lookupWrapper<SVGPathElement, SVGAnimatedPathSegListPropertyTearOff>(this, dPropertyInfo())->isAnimating()) { SVGPathSegList newList(PathSegUnalteredRole); buildSVGPathSegListFromByteStream(m_pathByteStream, *this, newList, UnalteredParsing); m_pathSegList.value = newList; } if (renderer) renderer->setNeedsShapeUpdate(); invalidateMPathDependencies(); } if (renderer) RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer); }
void SVGPathElement::removedFrom(ContainerNode* rootParent) { SVGGeometryElement::removedFrom(rootParent); invalidateMPathDependencies(); }
Node::InsertionNotificationRequest SVGPathElement::insertedInto(ContainerNode* rootParent) { SVGGeometryElement::insertedInto(rootParent); invalidateMPathDependencies(); return InsertionDone; }
void SVGPathElement::removedFrom(ContainerNode& rootParent) { SVGGraphicsElement::removedFrom(rootParent); invalidateMPathDependencies(); }