[PR #4554] Scrollfix #25831

Closed
opened 2026-01-31 09:12:04 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/4554

State: closed
Merged: No


Summary of the Pull Request

Fixed inconsistent scrolling when using both touchscreen and precision touchpad.

References

#1066 and #4542

PR Checklist

  • Closes #xxx
  • CLA signed. If not, go over here and sign the CLA
  • Tests added/passed
  • Requires documentation to be updated
  • I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #4542

Detailed Description of the Pull Request / Additional comments

Scrolling jumpiness is caused by rounding errors. Instead of retrieving the current scrolling value from GetScrollOffset, which is already rounded in int, let the scrolling operation to operate on _scrollBar's Value directly (which uses double) in TermControl.cpp.

Validation Steps Performed

Testing scrolling on the following scenario manually:

  • nonscrollable terminal (e.g. the window is large enough to contain the current buffer).
  • scrolling to the topmost and bottom-most.
  • scrolling TUI apps such as nano and more in WSL.
  • after clearing the terminal, both in cmd and WSL.

has the same behavior between using touchscreen or precision trackpad and regular mouse wheel.

**Original Pull Request:** https://github.com/microsoft/terminal/pull/4554 **State:** closed **Merged:** No --- <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Fixed inconsistent scrolling when using both touchscreen and precision touchpad. <!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> ## References #1066 and #4542 <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [ ] Closes #xxx * [X] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] Tests added/passed * [ ] Requires documentation to be updated * [X] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #4542 <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments Scrolling jumpiness is caused by rounding errors. Instead of retrieving the current scrolling value from `GetScrollOffset`, which is already rounded in `int`, let the scrolling operation to operate on `_scrollBar`'s `Value` directly (which uses `double`) in `TermControl.cpp`. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed Testing scrolling on the following scenario manually: - nonscrollable terminal (e.g. the window is large enough to contain the current buffer). - scrolling to the topmost and bottom-most. - scrolling TUI apps such as `nano` and `more` in WSL. - after clearing the terminal, both in cmd and WSL. has the same behavior between using touchscreen or precision trackpad and regular mouse wheel.
claunia added the pull-request label 2026-01-31 09:12:04 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#25831