summaryrefslogtreecommitdiffstats
path: root/WebCore/page/animation/CompositeAnimation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/page/animation/CompositeAnimation.cpp')
-rw-r--r--WebCore/page/animation/CompositeAnimation.cpp16
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())) {