Skip to content

Fixed(terminal-emulator): Do not count scrolls between left and right margins in the scroll counter - #5356

Open
matthematics1137 wants to merge 1 commit into
termux:masterfrom
matthematics1137:fix-scroll-counter-horizontal-margins
Open

matthematics1137 wants to merge 1 commit into
termux:masterfrom
matthematics1137:fix-scroll-counter-horizontal-margins

Conversation

@matthematics1137

Copy link
Copy Markdown

scrollDownOneLine() increments mScrollCounter before it checks for left and
right margins (DECLRMM). A scroll between those margins only copies cells
within the screen. No row moves into the transcript, and the screen does not
move in it.

TerminalView.onScreenUpdated() still shifts its top row by the counter while
text is selected or auto scroll is disabled. For each such scroll, the view and
the selection move up one row. When the history holds fewer rows than the
counter, the selection is cancelled instead.

This change counts only the scrolls that move the screen in the transcript.

Test: ScrollRegionTest.testScrollCounterCountsOnlyRowsMovedIntoTheTranscript.

… margins in the scroll counter

scrollDownOneLine() incremented mScrollCounter before checking for left and
right margins (DECLRMM). A scroll between those margins only copies cells
within the screen: no row moves into the transcript and the screen does not
move in it. TerminalView still shifted its top row by the counter while text
was selected or auto scroll was disabled, so for each such scroll the view
and the selection moved up one row, or the selection was cancelled when the
history held fewer rows than the counter.

Count only the scrolls that move the screen in the transcript.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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