void AnimationControllerPrivate::animationTimerFired(Timer<AnimationControllerPrivate>*) { // Make sure animationUpdateTime is updated, so that it is current even if no // styleChange has happened (e.g. accelerated animations) setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); // When the timer fires, all we do is call setChanged on all DOM nodes with running animations and then do an immediate // updateRendering. It will then call back to us with new information. updateAnimationTimer(true); }
void AnimationControllerPrivate::resumeAnimationsForDocument(Document* document) { setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); for (auto it = m_compositeAnimations.begin(), end = m_compositeAnimations.end(); it != end; ++it) { if (&it->key->document() == document) it->value->resumeAnimations(); } updateAnimationTimer(); }
void AnimationControllerPrivate::resumeAnimationsForDocument(Document* document) { AnimationPrivateUpdateBlock updateBlock(*this); for (auto& animation : m_compositeAnimations) { if (&animation.key->document() == document) animation.value->resumeAnimations(); } updateAnimationTimer(); }
void AnimationControllerPrivate::resumeAnimations(Document* document) { RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end(); for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) { RenderObject* renderer = it->first; RefPtr<CompositeAnimation> compAnim = it->second; if (renderer->document() == document) compAnim->resumeAnimations(); } updateAnimationTimer(); }
void AnimationControllerPrivate::animationTimerFired(Timer<AnimationControllerPrivate>&) { // Make sure animationUpdateTime is updated, so that it is current even if no // styleChange has happened (e.g. accelerated animations) setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); // When the timer fires, all we do is call setChanged on all DOM nodes with running animations and then do an immediate // updateStyleIfNeeded. It will then call back to us with new information. updateAnimationTimer(CallSetChanged); // Fire events right away, to avoid a flash of unanimated style after an animation completes, and before // the 'end' event fires. fireEventsAndUpdateStyle(); }
void AnimationControllerPrivate::resumeAnimationsForDocument(Document* document) { setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end(); for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) { RenderObject* renderer = it->key; if (&renderer->document() == document) { CompositeAnimation* compAnim = it->value.get(); compAnim->resumeAnimations(); } } updateAnimationTimer(); }
void AnimationControllerPrivate::suspendAnimations(Document* document) { setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end(); for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) { RenderObject* renderer = it->first; if (renderer->document() == document) { CompositeAnimation* compAnim = it->second.get(); compAnim->suspendAnimations(); } } updateAnimationTimer(); }
void AnimationControllerPrivate::animationTimerFired() { // We need to keep the frame alive, since it owns us. Ref<Frame> protector(m_frame); // Make sure animationUpdateTime is updated, so that it is current even if no // styleChange has happened (e.g. accelerated animations) AnimationPrivateUpdateBlock updateBlock(*this); // When the timer fires, all we do is call setChanged on all DOM nodes with running animations and then do an immediate // updateStyleIfNeeded. It will then call back to us with new information. updateAnimationTimer(CallSetChanged); // Fire events right away, to avoid a flash of unanimated style after an animation completes, and before // the 'end' event fires. fireEventsAndUpdateStyle(); }
void AnimationControllerPrivate::animationTimerFired(Timer<AnimationControllerPrivate>* timer) { // When the timer fires, all we do is call setChanged on all DOM nodes with running animations and then do an immediate // updateRendering. It will then call back to us with new information. bool animating = false; RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end(); for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) { CompositeAnimation* compAnim = it->second; if (!compAnim->suspended() && compAnim->animating()) { animating = true; compAnim->setAnimating(false); Node* node = it->first->element(); ASSERT(!node || (node->document() && !node->document()->inPageCache())); node->setChanged(AnimationStyleChange); } } m_frame->document()->updateRendering(); updateAnimationTimer(); }
void AnimationControllerPrivate::animationTimerFired(Timer<AnimationControllerPrivate>* timer) { // When the timer fires, all we do is call setChanged on all DOM nodes with running animations and then do an immediate // updateRendering. It will then call back to us with new information. updateAnimationTimer(true); }