ladybird/Libraries/LibWeb/Compositor
Aliaksandr Kalenik 21245e7adb LibWeb: Follow paint order for async wheel hit testing
Async wheel routing used scroll node scrollports as the hit-test
surface. That works while the scrollable content is the topmost content
under the pointer, but it ignores the rest of the painted scene. A
sibling with a higher z-index can visually cover a nested scroller
without being part of that scroller's subtree. In that case the
compositor could still pick the covered scroller from its scrollport
rect and consume the wheel event, even though normal hit testing would
target the covering element and let the page or an ancestor handle the
scroll.

Record wheel hit-test targets as display-list metadata in paint order
and resolve each target to the scroll frame that should receive wheel
deltas. The compositor can then walk those targets from front to back,
preserve non-passive wheel regions as main-thread barriers, and only
scroll the node associated with the topmost hit-testable box.
2026-05-14 15:32:03 +02:00
..
AsyncScrollingState.cpp LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
AsyncScrollingState.h LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
AsyncScrollTree.cpp LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
AsyncScrollTree.h LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
CompositorThread.cpp LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
CompositorThread.h LibWeb: Rebuild async scrolling from display list 2026-05-13 18:36:07 +02:00