1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:47:35 +00:00

LibWeb: Run update_finished_state when setting AnimationEffect's timing

This will need to a necessary style invalidation
This commit is contained in:
Matthew Olsson 2024-02-10 20:54:42 -07:00 committed by Andrew Kaster
parent 6d25bf3aac
commit 3721a1a81c
3 changed files with 10 additions and 0 deletions

View file

@ -509,6 +509,11 @@ void Animation::notify_timeline_time_did_change()
}
}
void Animation::effect_timing_changed(Badge<AnimationEffect>)
{
update_finished_state(DidSeek::No, SynchronouslyNotify::Yes);
}
// https://www.w3.org/TR/web-animations-1/#associated-effect-end
double Animation::associated_effect_end() const
{

View file

@ -65,6 +65,8 @@ public:
JS::GCPtr<DOM::Document> document_for_timing() const;
void notify_timeline_time_did_change();
void effect_timing_changed(Badge<AnimationEffect>);
protected:
Animation(JS::Realm&);

View file

@ -151,6 +151,9 @@ WebIDL::ExceptionOr<void> AnimationEffect::update_timing(OptionalEffectTiming ti
if (timing.easing.has_value())
m_easing_function = timing.easing.value();
if (auto animation = m_associated_animation)
animation->effect_timing_changed({});
return {};
}