vim-patch:9.0.0998: "gk" may reset skipcol when not needed

Problem:    "gk" may reset skipcol when not needed.
Solution:   Only reset skipcol if the cursor column is less.

1b73edd9ee

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
Luuk van Baal
2023-04-28 12:32:39 +02:00
parent 5ba11087b6
commit c25fd85c2e
2 changed files with 42 additions and 9 deletions

View File

@@ -1776,7 +1776,7 @@ void scroll_cursor_top(int min_scroll, int always)
scroll_cursor_halfway(false, false);
} else {
// If "always" is false, only adjust topline to a lower value, higher
// value may happen with wrapping lines
// value may happen with wrapping lines.
if (new_topline < curwin->w_topline || always) {
curwin->w_topline = new_topline;
}
@@ -1792,7 +1792,8 @@ void scroll_cursor_top(int min_scroll, int always)
}
check_topfill(curwin, false);
// TODO(vim): if the line doesn't fit may optimize w_skipcol
if (curwin->w_topline == curwin->w_cursor.lnum) {
if (curwin->w_topline == curwin->w_cursor.lnum
&& curwin->w_skipcol >= curwin->w_cursor.col) {
reset_skipcol(curwin);
}
if (curwin->w_topline != old_topline