Inconsistent touch screen scrolling #6383

Open
opened 2026-01-31 00:37:14 +00:00 by claunia · 0 comments
Owner

Originally created by @jamestut on GitHub (Feb 12, 2020).

Environment

Windows build number: 10.0.18363.628
Windows Terminal version (if applicable): 543f5339d73ed49ccf3392627663c59cd5e51aec

Any other software?

Steps to reproduce

Scroll the terminal viewport using touch screen.

Expected behavior

Viewport should move consistently, line by line, and the scrolling should "follow the finger".

Actual behavior

Scrolling is not consistent, and jellying/jumping. This is very apparent especially when scrolling the viewport up, where the line moves by 2 instead of 1. Also when scrolling quickly, the actual scrolling lags a little bit.

Proposed Fix

Since this is caused by rounding errors, I modified the scrolling to operate on _scrollBar's Value directly (which uses double) instead of calculating the previous offset from GetScrollOffset in TermControl.cpp.

Tested this and I didn't found any glitches with this approach, and now the touch screen scrolling works as expected.

Originally created by @jamestut on GitHub (Feb 12, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> # Environment ```none Windows build number: 10.0.18363.628 Windows Terminal version (if applicable): 543f5339d73ed49ccf3392627663c59cd5e51aec Any other software? ``` # Steps to reproduce Scroll the terminal viewport using touch screen. <!-- A description of how to trigger this bug. --> # Expected behavior Viewport should move consistently, line by line, and the scrolling should "follow the finger". <!-- A description of what you're expecting, possibly containing screenshots or reference material. --> # Actual behavior Scrolling is not consistent, and jellying/jumping. This is very apparent especially when scrolling the viewport up, where the line moves by 2 instead of 1. Also when scrolling quickly, the actual scrolling lags a little bit. <!-- What's actually happening? --> # Proposed Fix Since this is caused by rounding errors, I modified the scrolling to operate on `_scrollBar`'s `Value` directly (which uses `double`) instead of calculating the previous offset from `GetScrollOffset` in `TermControl.cpp`. Tested this and I didn't found any glitches with this approach, and now the touch screen scrolling works as expected.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#6383