diff options
Diffstat (limited to 'WebCore/page/animation')
-rw-r--r-- | WebCore/page/animation/AnimationBase.cpp | 4 | ||||
-rw-r--r-- | WebCore/page/animation/AnimationBase.h | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/WebCore/page/animation/AnimationBase.cpp b/WebCore/page/animation/AnimationBase.cpp index 6efed8e..ade68b5 100644 --- a/WebCore/page/animation/AnimationBase.cpp +++ b/WebCore/page/animation/AnimationBase.cpp @@ -1180,6 +1180,10 @@ void AnimationBase::fireAnimationEventsIfNeeded() // Check for end timeout if (m_totalDuration >= 0 && elapsedDuration >= m_totalDuration) { + // We may still be in AnimationStateLooping if we've managed to skip a + // whole iteration, in which case we should jump to the end state. + m_animState = AnimationStateEnding; + // Fire an end event updateStateMachine(AnimationStateInputEndTimerFired, m_totalDuration); } else { diff --git a/WebCore/page/animation/AnimationBase.h b/WebCore/page/animation/AnimationBase.h index 182cb3c..f5f3172 100644 --- a/WebCore/page/animation/AnimationBase.h +++ b/WebCore/page/animation/AnimationBase.h @@ -42,7 +42,7 @@ class Element; class Node; class RenderObject; class RenderStyle; -struct TimingFunction; +class TimingFunction; class AnimationBase : public RefCounted<AnimationBase> { friend class CompositeAnimation; |