| Index: Source/core/svg/SVGAnimateElement.cpp
|
| diff --git a/Source/core/svg/SVGAnimateElement.cpp b/Source/core/svg/SVGAnimateElement.cpp
|
| index 4a57892489e0f5844de22f21d33aca981d3a1696..0b0b95c6d8f2a456c11a63bc2b8ca4f7a6446f66 100644
|
| --- a/Source/core/svg/SVGAnimateElement.cpp
|
| +++ b/Source/core/svg/SVGAnimateElement.cpp
|
| @@ -162,7 +162,7 @@ void SVGAnimateElement::resetAnimatedType()
|
| if (shouldApply == DontApplyAnimation)
|
| return;
|
|
|
| - if (shouldApply == ApplyXMLAnimation) {
|
| + if (shouldApply == ApplyXMLAnimation || shouldApply == ApplyXMLandCSSAnimation) {
|
| // SVG DOM animVal animation code-path.
|
| SVGElementInstances animatedElements = findElementInstances(targetElement);
|
| ASSERT(!animatedElements.isEmpty());
|
| @@ -282,7 +282,10 @@ void SVGAnimateElement::clearAnimatedType(SVGElement* targetElement)
|
| return;
|
| }
|
|
|
| - if (ensureAnimator()->isAnimatingCSSProperty()) {
|
| + ShouldApplyAnimation shouldApply = shouldApplyAnimation(targetElement, attributeName());
|
| + if (shouldApply == ApplyXMLandCSSAnimation) {
|
| + removeCSSPropertyFromTargetAndInstances(targetElement, attributeName());
|
| + } else if (ensureAnimator()->isAnimatingCSSProperty()) {
|
| // CSS properties animation code-path.
|
| removeCSSPropertyFromTargetAndInstances(targetElement, attributeName());
|
| m_animatedProperty.clear();
|
| @@ -309,7 +312,11 @@ void SVGAnimateElement::applyResultsToTarget()
|
| if (!m_animatedProperty)
|
| return;
|
|
|
| - if (m_animator->isAnimatingCSSProperty()) {
|
| + // We do update the style and the animation property independent of each other.
|
| + ShouldApplyAnimation shouldApply = shouldApplyAnimation(targetElement(), attributeName());
|
| + if (shouldApply == ApplyXMLandCSSAnimation) {
|
| + applyCSSPropertyToTargetAndInstances(targetElement(), attributeName(), m_animatedProperty->valueAsString());
|
| + } else if (m_animator->isAnimatingCSSProperty()) {
|
| // CSS properties animation code-path.
|
| // Convert the result of the animation to a String and apply it as CSS property on the target & all instances.
|
| applyCSSPropertyToTargetAndInstances(targetElement(), attributeName(), m_animatedProperty->valueAsString());
|
|
|