LibWeb: Skip page scrolling for wheel events consumed by scrollable box

Leftover from 90879a07ba
This commit is contained in:
Aliaksandr Kalenik 2024-03-17 08:02:52 +01:00 committed by Andreas Kling
parent a386ebde02
commit 0afbd827e0
3 changed files with 37 additions and 1 deletions

View file

@ -0,0 +1,2 @@
scrollable.scrollTop: 200
window.scrollY: 0

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<style>
body {
height: 2000px;
margin: 0;
}
#box {
margin-top: 500px;
width: 100px;
height: 100px;
background-color: red;
}
#scrollable {
width: 400px;
height: 400px;
overflow: scroll;
border: 10px solid black;
}
</style>
<div id="scrollable">
<div id="box"></div>
</div>
<script src="include.js"></script>
<script>
test(() => {
internals.wheel(10, 10, 0, 1000);
const scrollable = document.getElementById("scrollable");
println("scrollable.scrollTop: " + scrollable.scrollTop);
println("window.scrollY: " + window.scrollY);
});
</script>

View file

@ -180,7 +180,8 @@ bool EventHandler::handle_mousewheel(CSSPixelPoint position, CSSPixelPoint scree
containing_block = containing_block->containing_block();
}
paintable->handle_mousewheel({}, position, buttons, modifiers, wheel_delta_x, wheel_delta_y);
if (paintable->handle_mousewheel({}, position, buttons, modifiers, wheel_delta_x, wheel_delta_y))
return true;
auto node = dom_node_for_event_dispatch(*paintable);