Skip to content

fix(desktop): bound overlay scrollbars#2089

Open
Areson wants to merge 1 commit into
block:mainfrom
Areson:Areson/thread-scrollbar
Open

fix(desktop): bound overlay scrollbars#2089
Areson wants to merge 1 commit into
block:mainfrom
Areson:Areson/thread-scrollbar

Conversation

@Areson

@Areson Areson commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Why

Thread and main-timeline scrollbar thumbs can move behind the composer, making them impossible to grab, and dragging a small native thumb can select message text instead of scrolling.

What

  • Add a bounded overlay scrollbar for thread panels and main timelines, including virtualized timelines
  • Reserve the composer height, enforce a minimum grab target, and map pointer drags across the full scroll range
  • Reveal the thumb when the pointer enters anywhere in the scrollable pane, matching the sidebar behavior while retaining scroll-time visibility and idle fade
  • Coordinate text-selection suppression across overlapping drags and restore it safely on release or cleanup
  • Preserve the existing mouse cursor and avoid observing Virtua's inner measurement container so prepends retain their scroll anchor
  • Add focused regression coverage for bounded geometry, drag clamping, concurrent selection-lock lifetimes, and pane-hover visibility

Risk Assessment

Low to moderate — this is limited to desktop message scrolling and does not change message data or relay behavior. Reviewers should focus on pointer capture across mouse, pen, and touch hardware, pane-hover visibility, and composer resizing.

Validation

  • just ci
  • Pre-push hooks: branch skew, organization policy, desktop checks/tests, Rust tests, Tauri tests, and mobile tests
  • Focused pane-hover browser regression: pass
  • Scroll-history and cascading-virtualization smoke regressions: 4/4 pass across two repetitions

Generated with Codex

@Areson
Areson force-pushed the Areson/thread-scrollbar branch from 21c500a to 0ba2e37 Compare July 18, 2026 23:32
@Areson
Areson marked this pull request as ready for review July 18, 2026 23:54
@Areson
Areson requested a review from a team as a code owner July 18, 2026 23:54
Keep thread and main-timeline scrollbar thumbs above their composers,
make the thumbs draggable, and reveal them when hovering anywhere in the
scrollable pane. Preserve virtualized scroll anchoring and cursor behavior.

Co-authored-by: Ian Oberst <ioberst@squareup.com>
Signed-off-by: Ian Oberst <ioberst@squareup.com>
Co-authored-by: Codex <noreply@openai.com>
Ai-assisted: true
@Areson
Areson force-pushed the Areson/thread-scrollbar branch from 0ba2e37 to 36efff5 Compare July 19, 2026 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant