void SVGSMILElement::setAttributeName(const QualifiedName& attributeName) { unscheduleIfScheduled(); if (m_targetElement) clearAnimatedType(); m_attributeName = attributeName; schedule(); }
SVGSMILElement::~SVGSMILElement() { #if !ENABLE(OILPAN) clearResourceAndEventBaseReferences(); smilEndEventSender().cancelEvent(this); smilBeginEventSender().cancelEvent(this); smilRepeatEventSender().cancelEvent(this); smilRepeatNEventSender().cancelEvent(this); clearConditions(); unscheduleIfScheduled(); #endif }
void SVGSMILElement::setTargetElement(SVGElement* target) { unscheduleIfScheduled(); if (m_targetElement) { // Clear values that may depend on the previous target. clearAnimatedType(); disconnectSyncBaseConditions(); } // If the animation state is not Inactive, always reset to a clear state before leaving the old target element. if (m_activeState != Inactive) endedActiveInterval(); m_targetElement = target; schedule(); }
void SVGAnimationElement::checkInvalidCSSAttributeType() { bool hasInvalidCSSAttributeType = targetElement() && hasValidAttributeName() && attributeType() == AttributeTypeCSS && !isTargetAttributeCSSProperty(targetElement(), attributeName()); if (hasInvalidCSSAttributeType != m_hasInvalidCSSAttributeType) { if (hasInvalidCSSAttributeType) unscheduleIfScheduled(); m_hasInvalidCSSAttributeType = hasInvalidCSSAttributeType; if (!hasInvalidCSSAttributeType) schedule(); } // Clear values that may depend on the previous target. if (targetElement()) clearAnimatedType(); }