diff --git a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp index c9326e047e..12e19ea2fd 100644 --- a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp +++ b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp @@ -649,9 +649,18 @@ Optional PaintableBox::hit_test(Gfx::FloatPoint const& position, return stacking_context()->hit_test(position, type); } - if (absolute_border_box_rect().contains(position.x(), position.y())) - return HitTestResult { *this }; - return {}; + if (!absolute_border_box_rect().contains(position.x(), position.y())) + return {}; + + for (auto* child = first_child(); child; child = child->next_sibling()) { + auto result = child->hit_test(position, type); + if (!result.has_value()) + continue; + if (!result->paintable->visible_for_hit_testing()) + continue; + return result; + } + return HitTestResult { *this }; } Optional PaintableWithLines::hit_test(Gfx::FloatPoint const& position, HitTestType type) const