Skip to content

Refactor scrollbar into more reusable scrollview component#1654

Merged
dgageot merged 1 commit intodocker:mainfrom
krissetto:scrollable-views
Feb 9, 2026
Merged

Refactor scrollbar into more reusable scrollview component#1654
dgageot merged 1 commit intodocker:mainfrom
krissetto:scrollable-views

Conversation

@krissetto
Copy link
Contributor

@krissetto krissetto commented Feb 9, 2026

This PR does a few things:

  • Introduces a scrollview component to be used with any components that needs scrolling and a scrollbar;
  • Reduces code duplication because of that and simplifies how components interact with a scrollbar, moving most of the scroll specific logic out of components that don't have special edge cases to handle (messages being one of them for now);
  • Adapts most scrollable components to use this, for more consistent styling and behavior (mouse support, common keys to scroll with, etc);
  • Fixes some minor scrollbar positioning and UX bugs in certain scenarios when dragging the scrollbar with a mouse;

@krissetto krissetto requested a review from a team as a code owner February 9, 2026 13:33
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

Found 2 issues in the scrollview refactoring:

  1. High severity: Double EnsureLineVisible call can hide part of selected messages
  2. Medium severity: Mouse hit-testing has 1-frame lag after position changes in dialogs

See inline comments for details.

also fixes some minor scrollbar positioning and ux bugs in certain scenarios when dragging the scrollbar with a mouse

Signed-off-by: Christopher Petito <chrisjpetito@gmail.com>
@dgageot dgageot merged commit 4e77e85 into docker:main Feb 9, 2026
5 checks passed
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.

2 participants