소스 검색

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);
             }