LibWeb: Keep track of associated AnimationEffects in Animatable

This commit is contained in:
Matthew Olsson 2024-02-03 12:10:44 -07:00 committed by Andreas Kling
commit 5eea53f27a
Notes: sideshowbarker 2024-07-16 23:38:54 +09:00
4 changed files with 33 additions and 1 deletions

View file

@ -732,6 +732,15 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<KeyframeEffect>> KeyframeEffect::construct_
return effect;
}
void KeyframeEffect::set_target(DOM::Element* target)
{
if (m_target_element)
m_target_element->disassociate_with_effect(*this);
m_target_element = target;
if (m_target_element)
m_target_element->associate_with_effect(*this);
}
void KeyframeEffect::set_pseudo_element(Optional<String> pseudo_element)
{
// On setting, sets the target pseudo-selector of the animation effect to the provided value after applying the
@ -834,6 +843,12 @@ KeyframeEffect::KeyframeEffect(JS::Realm& realm)
{
}
KeyframeEffect::~KeyframeEffect()
{
if (m_target_element)
m_target_element->disassociate_with_effect(*this);
}
void KeyframeEffect::initialize(JS::Realm& realm)
{
Base::initialize(realm);