LibWeb: Make CSS :hover selector match shadow-inclusive ancestors

Before this change, :hover wouldn't match anything outside the shadow
boundary when hovering elements inside a shadow tree. This was most
noticeable when hovering the text inside an input element and hover
styles disappearing from the hosting input element itself.
This commit is contained in:
Andreas Kling 2024-08-25 10:14:24 +02:00 committed by Andreas Kling
commit 84ab8bf797
Notes: github-actions[bot] 2024-08-25 10:53:57 +00:00
3 changed files with 25 additions and 1 deletions

View file

@ -147,7 +147,7 @@ static inline bool matches_hover_pseudo_class(DOM::Element const& element)
return false;
if (&element == hovered_node)
return true;
return element.is_ancestor_of(*hovered_node);
return element.is_shadow_including_ancestor_of(*hovered_node);
}
// https://html.spec.whatwg.org/multipage/semantics-other.html#selector-checked