Commit Graph
2 Commits
Author SHA1 Message Date
Shohruh Ismoilovandshohruh-genius 231c47b5cd fix(vcs): stop hover flicker while scrolling the Git log (#2358)
Wheel-scrolling the Git log under a stationary pointer flashed row hover backgrounds, graph edge/node highlights and subject tooltips, because recycled virtual rows fire enter events as they pass under the pointer. Scrolling now pauses hover feedback on the list until the pointer actually moves; row hover, graph highlights and tooltips resume then.

Co-authored-by: shohruh-genius <7658451+shohruh-genius@users.noreply.github.com>
2026-11-10 03:48:31 +08:00
l0ng-ai b99fe1704b fix(vcs): keep Git Log rows painted while dragging the scrollbar (#1914)
Dragging the Git Log scrollbar through a long history stuttered and showed
blank rows: the native scrollbar scrolls asynchronously in WebKit, so the
virtual list rendered rows a frame or more after the new offset was painted.

The list now uses a scrollbar drawn in the DOM (`Scrollbar` in `src/ui`) that
sets the offset from pointer events and notifies scroll listeners at once, so
the virtualizer renders the matching rows before the next paint. Rows are
keyed by slot so a large jump updates the mounted rows instead of rebuilding
them, overscan is lowered, and rows rendered mid-scroll draw their graph
without edge hit targets, which come back once scrolling stops.

Adds a `gitLogScrollbar` perf scenario with budgets.
2026-11-07 12:14:09 +08:00