From 76e520884e9c846e3914c0d74741c032e32cb09f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 18 Mar 2023 20:26:56 +0100 Subject: [PATCH] LibWeb: Traverse shadow boundaries when looking for focus candidates This makes focusing input fields by clicking on them work. Fixes #17801 --- Userland/Libraries/LibWeb/Page/EventHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Page/EventHandler.cpp b/Userland/Libraries/LibWeb/Page/EventHandler.cpp index dc2f2999eb..5bee76c90d 100644 --- a/Userland/Libraries/LibWeb/Page/EventHandler.cpp +++ b/Userland/Libraries/LibWeb/Page/EventHandler.cpp @@ -385,7 +385,7 @@ bool EventHandler::handle_mousedown(CSSPixelPoint position, unsigned button, uns if (paintable->dom_node()) { // See if we want to focus something. bool did_focus_something = false; - for (auto candidate = node; candidate; candidate = candidate->parent()) { + for (auto candidate = node; candidate; candidate = candidate->parent_or_shadow_host()) { if (candidate->is_focusable()) { // When a user activates a click focusable focusable area, the user agent must run the focusing steps on the focusable area with focus trigger set to "click". // Spec Note: Note that focusing is not an activation behavior, i.e. calling the click() method on an element or dispatching a synthetic click event on it won't cause the element to get focused.