зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1298742 - Part 1: Factor out MarkCascadeUpdate(). r=hiro
We mark the cascade update many times, so it's better to factor it out. MozReview-Commit-ID: HbE980gOJ9M --HG-- extra : rebase_source : a76dfc489f378c5bd7e711f296d0599ecf2322c5
This commit is contained in:
Родитель
ad60fcbdf9
Коммит
8bb94c4499
|
@ -104,13 +104,7 @@ KeyframeEffectReadOnly::NotifyAnimationTimingUpdated()
|
|||
// animation cascade for this element whenever that changes.
|
||||
bool inEffect = IsInEffect();
|
||||
if (inEffect != mInEffectOnLastAnimationTimingUpdate) {
|
||||
if (mTarget) {
|
||||
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
|
||||
mTarget->mPseudoType);
|
||||
if (effectSet) {
|
||||
effectSet->MarkCascadeNeedsUpdate();
|
||||
}
|
||||
}
|
||||
MarkCascadeNeedsUpdate();
|
||||
mInEffectOnLastAnimationTimingUpdate = inEffect;
|
||||
}
|
||||
|
||||
|
@ -305,15 +299,9 @@ KeyframeEffectReadOnly::UpdateProperties(nsStyleContext* aStyleContext)
|
|||
|
||||
CalculateCumulativeChangeHint(aStyleContext);
|
||||
|
||||
if (mTarget) {
|
||||
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
|
||||
mTarget->mPseudoType);
|
||||
if (effectSet) {
|
||||
effectSet->MarkCascadeNeedsUpdate();
|
||||
}
|
||||
MarkCascadeNeedsUpdate();
|
||||
|
||||
RequestRestyle(EffectCompositor::RestyleType::Layer);
|
||||
}
|
||||
RequestRestyle(EffectCompositor::RestyleType::Layer);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1229,13 +1217,7 @@ KeyframeEffectReadOnly::SetAnimation(Animation* aAnimation)
|
|||
// Restyle for the new animation.
|
||||
RequestRestyle(EffectCompositor::RestyleType::Layer);
|
||||
|
||||
if (mTarget) {
|
||||
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
|
||||
mTarget->mPseudoType);
|
||||
if (effectSet) {
|
||||
effectSet->MarkCascadeNeedsUpdate();
|
||||
}
|
||||
}
|
||||
MarkCascadeNeedsUpdate();
|
||||
|
||||
NotifyAnimationTimingUpdated();
|
||||
}
|
||||
|
@ -1275,6 +1257,21 @@ KeyframeEffectReadOnly::MaybeUpdateFrameForCompositor()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
KeyframeEffectReadOnly::MarkCascadeNeedsUpdate()
|
||||
{
|
||||
if (!mTarget) {
|
||||
return;
|
||||
}
|
||||
|
||||
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
|
||||
mTarget->mPseudoType);
|
||||
if (!effectSet) {
|
||||
return;
|
||||
}
|
||||
effectSet->MarkCascadeNeedsUpdate();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//
|
||||
// KeyframeEffect
|
||||
|
|
|
@ -349,6 +349,10 @@ protected:
|
|||
already_AddRefed<nsStyleContext>
|
||||
GetTargetStyleContext();
|
||||
|
||||
// A wrapper for marking cascade update according to the current
|
||||
// target and its effectSet.
|
||||
void MarkCascadeNeedsUpdate();
|
||||
|
||||
Maybe<OwningAnimationTarget> mTarget;
|
||||
|
||||
KeyframeEffectParams mEffectOptions;
|
||||
|
|
Загрузка…
Ссылка в новой задаче