ladybird/Libraries/LibWeb/HTML/EventLoop
Aliaksandr Kalenik d353954993 LibWeb: Adopt async scroll offsets for nested scroll nodes
Nested scroll nodes were present in the async scroll tree, but the
compositor rejected any non-viewport wheel target and tracked only one
pending viewport offset. That prevented element scrollports from being
scrolled asynchronously and made compositor-side offsets impossible to
adopt after the main thread rebuilt scroll state.

Let async wheel commands target any scroll node selected by the tree.
Store every offset produced by a compositor scroll and reapply pending
offsets by stable ID across display-list and scroll-state updates. The
main thread now adopts viewport, element and pseudo-element offsets
before rendering-update observers run, including scroll event
bookkeeping for element scrollers.

Carry the wheel hit-test rejection reason through the enqueue path while
doing this, so main-thread and blocking-wheel regions remain explicit
rather than being collapsed into a missing target. Existing nested
async-scrolling text tests cover the successful nested scroll path.
2026-05-14 19:41:32 +02:00
..
EventLoop.cpp LibWeb: Adopt async scroll offsets for nested scroll nodes 2026-05-14 19:41:32 +02:00
EventLoop.h LibWeb: Remove unused m_skip_event_loop_processing_steps flag 2026-04-27 20:58:54 +02:00
Task.cpp LibWeb: Remove tasks for destroyed documents when filtering on tasks 2026-03-22 14:26:50 -05:00
Task.h LibWeb: Implement makeXRCompatible() enough to work 2026-04-03 13:14:33 +02:00
TaskQueue.cpp LibWeb: Store idle tasks separately from normal tasks 2026-05-13 20:54:10 +02:00
TaskQueue.h LibWeb: Store idle tasks separately from normal tasks 2026-05-13 20:54:10 +02:00