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
Conversation
… 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
scrollDownOneLine()incrementsmScrollCounterbefore it checks for left andright 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 whiletext 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.