patch 9.2.0048 (71cc1b1) made ConPTY the default on Windows 11. Since then, running :!cmd (e.g. :!git diff) with guioptions+=! scrolls the screen up by the entire window height, instead of scrolling up only as many lines as the command actually outputs.
The cause is that ConPTY damages (marks dirty) all terminal rows on initialization, even rows that are still empty. This makes tl_dirty_row_end equal to Rows, so the scroll-up loop in update_system_term() keeps scrolling until tl_toprow reaches 0.
The fix uses the terminal cursor position (tl_cursor_pos.row + 1) instead of tl_dirty_row_end for the scroll calculation. The cursor position reflects where content has actually been written, so scrolling is limited to the lines that have real output.
https://github.com/vim/vim/pull/19735
(1 file)
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@mattn pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()