From 3c4bdd7cfa1b387e7a36df1e84a1a3c2f0b03f4f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 7 Apr 2022 15:29:58 +0200 Subject: LibWeb: Ignore non-painting layout nodes when hit testing We currently have to check this because the paint tree hangs from the layout tree and has no independent means of traversal. --- Userland/Libraries/LibWeb/Painting/StackingContext.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'Userland/Libraries') diff --git a/Userland/Libraries/LibWeb/Painting/StackingContext.cpp b/Userland/Libraries/LibWeb/Painting/StackingContext.cpp index 92151efc7c..048b56a663 100644 --- a/Userland/Libraries/LibWeb/Painting/StackingContext.cpp +++ b/Userland/Libraries/LibWeb/Painting/StackingContext.cpp @@ -341,6 +341,8 @@ Optional StackingContext::hit_test(Gfx::FloatPoint const& positio if (!m_box.children_are_inline()) { m_box.for_each_in_subtree_of_type([&](Layout::Box const& box) { if (!box.is_absolutely_positioned() && !box.is_floating()) { + if (!box.paint_box()) + return IterationDecision::Continue; if (auto candidate = box.paint_box()->hit_test(transformed_position, type); candidate.has_value()) result = move(candidate); } -- cgit v1.2.3