void nsAnimationReceiver::RecordAnimationMutation(Animation* aAnimation, AnimationMutation aMutationType) { KeyframeEffectReadonly* effect = aAnimation->GetEffect(); if (!effect) { return; } Element* animationTarget = effect->GetTarget(); if (!animationTarget) { return; } if (!Animations() || !(Subtree() || animationTarget == Target()) || animationTarget->ChromeOnlyAccess()) { return; } if (nsAutoAnimationMutationBatch::IsBatching()) { if (nsAutoAnimationMutationBatch::GetBatchTarget() != animationTarget) { return; } switch (aMutationType) { case eAnimationMutation_Added: nsAutoAnimationMutationBatch::AnimationAdded(aAnimation); break; case eAnimationMutation_Changed: nsAutoAnimationMutationBatch::AnimationChanged(aAnimation); break; case eAnimationMutation_Removed: nsAutoAnimationMutationBatch::AnimationRemoved(aAnimation); break; } nsAutoAnimationMutationBatch::AddObserver(Observer()); return; } nsDOMMutationRecord* m = Observer()->CurrentRecord(nsGkAtoms::animations); NS_ASSERTION(!m->mTarget, "Wrong target!"); m->mTarget = animationTarget; switch (aMutationType) { case eAnimationMutation_Added: m->mAddedAnimations.AppendElement(aAnimation); break; case eAnimationMutation_Changed: m->mChangedAnimations.AppendElement(aAnimation); break; case eAnimationMutation_Removed: m->mRemovedAnimations.AppendElement(aAnimation); break; } }
void Button_Panel::OnThink() { BaseClass::OnThink(); Animations(); }