diff options
Diffstat (limited to 'WebCore/page/animation/CompositeAnimation.cpp')
-rw-r--r-- | WebCore/page/animation/CompositeAnimation.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/WebCore/page/animation/CompositeAnimation.cpp b/WebCore/page/animation/CompositeAnimation.cpp index 9d021b4..602491e 100644 --- a/WebCore/page/animation/CompositeAnimation.cpp +++ b/WebCore/page/animation/CompositeAnimation.cpp @@ -30,6 +30,7 @@ #include "CompositeAnimation.h" #include "AnimationControllerPrivate.h" +#include "CSSPropertyLonghand.h" #include "CSSPropertyNames.h" #include "ImplicitAnimation.h" #include "KeyframeAnimation.h" @@ -509,7 +510,20 @@ bool CompositeAnimation::pauseTransitionAtTime(int property, double t) return false; ImplicitAnimation* implAnim = m_transitions.get(property).get(); - if (!implAnim || !implAnim->running()) + if (!implAnim) { + // Check to see if this property is being animated via a shorthand. + // This code is only used for testing, so performance is not critical here. + HashSet<int> shorthandProperties = AnimationBase::animatableShorthandsAffectingProperty(property); + bool anyPaused = false; + HashSet<int>::const_iterator end = shorthandProperties.end(); + for (HashSet<int>::const_iterator it = shorthandProperties.begin(); it != end; ++it) { + if (pauseTransitionAtTime(*it, t)) + anyPaused = true; + } + return anyPaused; + } + + if (!implAnim->running()) return false; if ((t >= 0.0) && (t <= implAnim->duration())) { |