diff --git a/Libraries/LibWeb/Animations/KeyframeEffect.cpp b/Libraries/LibWeb/Animations/KeyframeEffect.cpp index 47d0e88d0b6..db7389d05f0 100644 --- a/Libraries/LibWeb/Animations/KeyframeEffect.cpp +++ b/Libraries/LibWeb/Animations/KeyframeEffect.cpp @@ -941,6 +941,12 @@ void KeyframeEffect::update_computed_properties() return; auto animated_properties_before_update = style->animated_property_values(); + if (!pseudo_element_type().has_value()) { + if (auto computed_properties = target->computed_properties()) + computed_properties->reset_animated_properties({}); + } else if (auto computed_properties = target->pseudo_element_computed_properties(pseudo_element_type().value())) { + computed_properties->reset_animated_properties({}); + } auto& document = target->document(); document.style_computer().collect_animation_into(*target, pseudo_element_type(), *this, *style, CSS::StyleComputer::AnimationRefresh::Yes); diff --git a/Libraries/LibWeb/CSS/ComputedProperties.cpp b/Libraries/LibWeb/CSS/ComputedProperties.cpp index 5238e34bb23..b71f344c89d 100644 --- a/Libraries/LibWeb/CSS/ComputedProperties.cpp +++ b/Libraries/LibWeb/CSS/ComputedProperties.cpp @@ -103,7 +103,7 @@ void ComputedProperties::set_animated_property(PropertyID id, NonnullRefPtr) { m_animated_property_values.clear(); } diff --git a/Libraries/LibWeb/CSS/ComputedProperties.h b/Libraries/LibWeb/CSS/ComputedProperties.h index cbc65e842ef..953e50897f2 100644 --- a/Libraries/LibWeb/CSS/ComputedProperties.h +++ b/Libraries/LibWeb/CSS/ComputedProperties.h @@ -49,7 +49,7 @@ public: }; HashMap> const& animated_property_values() const { return m_animated_property_values; } - void reset_animated_properties(); + void reset_animated_properties(Badge); bool is_property_important(PropertyID property_id) const; bool is_property_inherited(PropertyID property_id) const; diff --git a/Libraries/LibWeb/DOM/Document.cpp b/Libraries/LibWeb/DOM/Document.cpp index 5e45edba84e..baf1e67e3f2 100644 --- a/Libraries/LibWeb/DOM/Document.cpp +++ b/Libraries/LibWeb/DOM/Document.cpp @@ -1571,8 +1571,6 @@ void Document::update_animated_style_if_needed() if (animation->is_idle() || animation->is_finished()) continue; if (auto effect = animation->effect()) { - if (auto* target = effect->target()) - target->reset_animated_css_properties(); effect->update_computed_properties(); } } diff --git a/Libraries/LibWeb/DOM/Element.cpp b/Libraries/LibWeb/DOM/Element.cpp index 339fd38abcc..3d47ee7a3e8 100644 --- a/Libraries/LibWeb/DOM/Element.cpp +++ b/Libraries/LibWeb/DOM/Element.cpp @@ -789,13 +789,6 @@ GC::Ref Element::resolved_css_values(Optionalreset_animated_properties(); -} - DOMTokenList* Element::class_list() { if (!m_class_list) diff --git a/Libraries/LibWeb/DOM/Element.h b/Libraries/LibWeb/DOM/Element.h index 104919874d9..cd89143078f 100644 --- a/Libraries/LibWeb/DOM/Element.h +++ b/Libraries/LibWeb/DOM/Element.h @@ -216,8 +216,6 @@ public: void set_pseudo_element_computed_properties(CSS::PseudoElement, GC::Ptr); GC::Ptr pseudo_element_computed_properties(CSS::PseudoElement); - void reset_animated_css_properties(); - GC::Ptr inline_style() { return m_inline_style; } GC::Ptr inline_style() const { return m_inline_style; } void set_inline_style(GC::Ptr);