LibWeb/Animations: Make KeyframeEffect work with AbstractElements

This commit is contained in:
Sam Atkins
2025-09-09 12:55:22 +01:00
committed by Andreas Kling
parent 05e449d32a
commit ba86b81c1a
Notes: github-actions[bot] 2025-12-03 12:31:27 +00:00
2 changed files with 16 additions and 0 deletions

View File

@@ -799,6 +799,19 @@ WebIDL::ExceptionOr<void> KeyframeEffect::set_pseudo_element(Optional<String> va
return {};
}
Optional<DOM::AbstractElement> KeyframeEffect::target_abstract_element() const
{
if (m_target_element)
return DOM::AbstractElement { *m_target_element, pseudo_element_type() };
return {};
}
void KeyframeEffect::set_target(DOM::AbstractElement abstract_element)
{
set_target(&abstract_element.element());
m_target_pseudo_selector = abstract_element.pseudo_element().map([](auto it) { return CSS::Selector::PseudoElementSelector { it }; });
}
Optional<CSS::PseudoElement> KeyframeEffect::pseudo_element_type() const
{
if (!m_target_pseudo_selector.has_value())

View File

@@ -93,6 +93,9 @@ public:
Optional<String> pseudo_element() const;
WebIDL::ExceptionOr<void> set_pseudo_element(Optional<String>);
Optional<DOM::AbstractElement> target_abstract_element() const;
void set_target(DOM::AbstractElement);
Optional<CSS::PseudoElement> pseudo_element_type() const;
void set_pseudo_element(Optional<CSS::Selector::PseudoElementSelector> pseudo_element) { m_target_pseudo_selector = pseudo_element; }