Context
During the initial implementation of the Multi-Body architecture, the dual-pipeline scrolling architecture was removed, with the assumption that native CSS overflow scrolling on the GridContainer wrapper would sufficiently handle both trackpad events and manual native thumb-dragging.
The Thread-Blocking Thumb-Drag Paradox
While CSS overflow operates asynchronously allowing perfect trackpad scroll physics, manually dragging the browser's native vertical scrollbar thumb blocks the Main Thread and causes the DOM viewport to shift before the backend AppWorker can compute the VDOM delta and pass the updated Virtual Row positions over the worker bridge.
This results in severe visual clipping framing and blank rows. The browser's native compositing engine optimizes out DOM areas unrendered, meaning that during a fast 4000px jump, the screen goes entirely blank until the worker thread catches up.
The Fix: Dual-Pipeline Architecture
We are reintroducing the proxy neo-grid-vertical-scrollbar component.
- The real vertical grid container is set to hide the native scrollbar, processing native multi-touch scrolling via purely async hardware acceleration perfectly.
- The proxy scrollbar is visually overlaid on the right edge of the Grid as a standalone item via absolutely positioned CSS inside the container.
- The
GridRowScrollPinning Main Thread addon physically listens for manual scrolling (mousedown on the dummy scrollbar). When the user drags this dummy thumb, the addon specifically forces the row nodes via synchronous translate3d GPU transform offsets to lock them perfectly into Phase with the scroll state while waiting for the VDOM to ship updates.
This effectively shields the framework from chromium optimization bugs occurring when high-velocity JS thumb-drags generate backpressure lag.
Actions
- Reinstate VerticalScrollbar.mjs and VerticalScrollbar.scss
- Flatten the DOM by injecting the proxy scrollbar directly into the GridContainer items array instead of through VDOM mutation overrides.
- Lock GridRowScrollPinning logic to the new proxy ID, and refine mathematical phase checking logic to restore zero lag grid row panning.
Context
During the initial implementation of the Multi-Body architecture, the dual-pipeline scrolling architecture was removed, with the assumption that native CSS overflow scrolling on the
GridContainerwrapper would sufficiently handle both trackpad events and manual native thumb-dragging.The Thread-Blocking Thumb-Drag Paradox
While CSS overflow operates asynchronously allowing perfect trackpad scroll physics, manually dragging the browser's native vertical scrollbar thumb blocks the Main Thread and causes the DOM viewport to shift before the backend AppWorker can compute the VDOM delta and pass the updated Virtual Row positions over the worker bridge.
This results in severe visual clipping framing and blank rows. The browser's native compositing engine optimizes out DOM areas unrendered, meaning that during a fast 4000px jump, the screen goes entirely blank until the worker thread catches up.
The Fix: Dual-Pipeline Architecture
We are reintroducing the proxy
neo-grid-vertical-scrollbarcomponent.GridRowScrollPinningMain Thread addon physically listens for manual scrolling (mousedownon the dummy scrollbar). When the user drags this dummy thumb, the addon specifically forces the row nodes via synchronoustranslate3dGPU transform offsets to lock them perfectly into Phase with the scroll state while waiting for the VDOM to ship updates.This effectively shields the framework from chromium optimization bugs occurring when high-velocity JS thumb-drags generate backpressure lag.
Actions