Преглед на файлове

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.
Andreas Kling преди 3 години
родител
ревизия
3c4bdd7cfa
променени са 1 файла, в които са добавени 2 реда и са изтрити 0 реда
  1. 2 0
      Userland/Libraries/LibWeb/Painting/StackingContext.cpp

+ 2 - 0
Userland/Libraries/LibWeb/Painting/StackingContext.cpp

@@ -341,6 +341,8 @@ Optional<HitTestResult> StackingContext::hit_test(Gfx::FloatPoint const& positio
     if (!m_box.children_are_inline()) {
         m_box.for_each_in_subtree_of_type<Layout::Box>([&](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);
             }