diff --git a/Libraries/LibWeb/Painting/StackingContext.cpp b/Libraries/LibWeb/Painting/StackingContext.cpp index 9e4ced1132e..6db34e455f3 100644 --- a/Libraries/LibWeb/Painting/StackingContext.cpp +++ b/Libraries/LibWeb/Painting/StackingContext.cpp @@ -384,9 +384,6 @@ void StackingContext::paint(DisplayListRecordingContext& context) const TraversalDecision StackingContext::hit_test(CSSPixelPoint position, HitTestType type, Function const& callback) const { - if (!paintable_box().visible_for_hit_testing()) - return TraversalDecision::Continue; - auto const inverse_transform = affine_transform_matrix().inverse().value_or({}); auto const transform_origin = paintable_box().transform_origin(); // NOTE: This CSSPixels -> Float -> CSSPixels conversion is because we can't AffineTransform::map() a CSSPixelPoint. @@ -455,6 +452,9 @@ TraversalDecision StackingContext::hit_test(CSSPixelPoint position, HitTestType return TraversalDecision::Break; } + if (!paintable_box().visible_for_hit_testing()) + return TraversalDecision::Continue; + auto const enclosing_scroll_offset = paintable_box().cumulative_offset_of_enclosing_scroll_frame(); auto const raw_position_adjusted_by_scroll_offset = position.translated(-enclosing_scroll_offset); // NOTE: This CSSPixels -> Float -> CSSPixels conversion is because we can't AffineTransform::map() a CSSPixelPoint. diff --git a/Tests/LibWeb/Text/expected/hit_testing/pointer-events.txt b/Tests/LibWeb/Text/expected/hit_testing/pointer-events.txt index bacae1a1565..fd0ae41da4f 100644 --- a/Tests/LibWeb/Text/expected/hit_testing/pointer-events.txt +++ b/Tests/LibWeb/Text/expected/hit_testing/pointer-events.txt @@ -16,3 +16,6 @@ --- +<#text> + +--- diff --git a/Tests/LibWeb/Text/input/hit_testing/pointer-events.html b/Tests/LibWeb/Text/input/hit_testing/pointer-events.html index a57a322052b..5916450b5f7 100644 --- a/Tests/LibWeb/Text/input/hit_testing/pointer-events.html +++ b/Tests/LibWeb/Text/input/hit_testing/pointer-events.html @@ -27,21 +27,26 @@ + + +
ladybird