소스 검색

LibWeb: Invalidate element when setting AnimationEffect's animation

Matthew Olsson 1 년 전
부모
커밋
6d25bf3aac
2개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 8 0
      Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp
  2. 1 1
      Userland/Libraries/LibWeb/Animations/AnimationEffect.h

+ 8 - 0
Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp

@@ -8,6 +8,7 @@
 #include <LibWeb/Animations/Animation.h>
 #include <LibWeb/Animations/AnimationEffect.h>
 #include <LibWeb/Bindings/Intrinsics.h>
+#include <LibWeb/DOM/Element.h>
 #include <LibWeb/WebIDL/ExceptionOr.h>
 
 namespace Web::Animations {
@@ -153,6 +154,13 @@ WebIDL::ExceptionOr<void> AnimationEffect::update_timing(OptionalEffectTiming ti
     return {};
 }
 
+void AnimationEffect::set_associated_animation(JS::GCPtr<Animation> value)
+{
+    m_associated_animation = value;
+    if (auto* target = this->target())
+        target->invalidate_style();
+}
+
 // https://www.w3.org/TR/web-animations-1/#animation-direction
 AnimationDirection AnimationEffect::animation_direction() const
 {

+ 1 - 1
Userland/Libraries/LibWeb/Animations/AnimationEffect.h

@@ -95,7 +95,7 @@ public:
     void set_timing_function(TimingFunction value) { m_timing_function = move(value); }
 
     JS::GCPtr<Animation> associated_animation() const { return m_associated_animation; }
-    void set_associated_animation(JS::GCPtr<Animation> value) { m_associated_animation = value; }
+    void set_associated_animation(JS::GCPtr<Animation> value);
 
     AnimationDirection animation_direction() const;