LibWeb: Make elements with 'opacity: 0' respond to hit-testing
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run

This commit is contained in:
Psychpsyo 2025-05-06 23:32:09 +02:00 committed by Alexander Kalenik
commit dbece92637
Notes: github-actions[bot] 2025-05-06 22:46:14 +00:00
3 changed files with 26 additions and 1 deletions

View file

@ -1069,7 +1069,7 @@ TraversalDecision PaintableBox::hit_test(CSSPixelPoint position, HitTestType typ
auto position_adjusted_by_scroll_offset = position.translated(-cumulative_offset_of_enclosing_scroll_frame());
if (!is_visible())
if (computed_values().visibility() != CSS::Visibility::Visible)
return TraversalDecision::Continue;
if (hit_test_scrollbars(position_adjusted_by_scroll_offset, callback) == TraversalDecision::Break)

View file

@ -0,0 +1,6 @@
Harness status: OK
Found 1 tests
1 Pass
Pass Elements with 'opacity: 0' should respond to hit testing.

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<title>Elements with 'opacity: 0' should respond to hit testing.</title>
<link rel="author" title="Psychpsyo" href="psychpsyo@gmail.com">
<meta name="assert" content="element with 'opacity: 0' responds to hit testing">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<style>
div {
width: 100px;
height: 100px;
opacity: 0;
}
</style>
<div></div>
<script>
test(() => {
assert_equals(document.elementFromPoint(50, 50).tagName, "DIV", "element with 'opacity: 0' doesn't respond to hit testing");
});
</script>