[PR #4554] [CLOSED] Scrollfix #25826

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/4554
Author: @jamestut
Created: 2/12/2020
Status: Closed

Base: masterHead: scrollfix


📝 Commits (3)

  • 42c8b2a More precise touchscreen scrolling.
  • 3ad4793 More precise mouse and precision touchpad scrolling.
  • d6ad119 Use of safemath to clamp addition operation on the scrolling offset.

📊 Changes

1 file changed (+8 additions, -8 deletions)

View changed files

📝 src/cascadia/TerminalControl/TermControl.cpp (+8 -8)

📄 Description

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.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/4554 **Author:** [@jamestut](https://github.com/jamestut) **Created:** 2/12/2020 **Status:** ❌ Closed **Base:** `master` ← **Head:** `scrollfix` --- ### 📝 Commits (3) - [`42c8b2a`](https://github.com/microsoft/terminal/commit/42c8b2a438b30607867a61d64222b758eb7b76e5) More precise touchscreen scrolling. - [`3ad4793`](https://github.com/microsoft/terminal/commit/3ad47930147d8d6f8206130ca1e00e96619e958a) More precise mouse and precision touchpad scrolling. - [`d6ad119`](https://github.com/microsoft/terminal/commit/d6ad119db0d8db61aaa99226e6870c87ae8bc26c) Use of safemath to clamp addition operation on the scrolling offset. ### 📊 Changes **1 file changed** (+8 additions, -8 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/TerminalControl/TermControl.cpp` (+8 -8) </details> ### 📄 Description <!-- 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. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:12:01 +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#25826