vim-patch:9.0.1564: display moves up and down with 'incsearch' and 'smoothscroll'

Problem:    Display moves up and down with 'incsearch' and 'smoothscroll'.
Solution:   Do not check if w_skipcol changed. (Luuk van Baal, closes vim/vim#12410,
            closes vim/vim#12409)

0222c2d103
This commit is contained in:
Luuk van Baal
2023-05-19 16:14:41 +02:00
parent 4c05b1a6ab
commit 02ef104d5b
2 changed files with 34 additions and 6 deletions

View File

@@ -248,7 +248,6 @@ void update_topline(win_T *wp)
}
linenr_T old_topline = wp->w_topline;
colnr_T old_skipcol = wp->w_skipcol;
int old_topfill = wp->w_topfill;
// If the buffer is empty, always set topline to 1.
@@ -413,8 +412,8 @@ void update_topline(win_T *wp)
dollar_vcol = -1;
redraw_later(wp, UPD_VALID);
// Only reset w_skipcol if it was not just set to make cursor visible.
if (wp->w_skipcol == old_skipcol) {
// When 'smoothscroll' is not set, should reset w_skipcol.
if (!wp->w_p_sms) {
reset_skipcol(wp);
}

View File

@@ -422,12 +422,41 @@ describe('smoothscroll', function()
|
]])
feed('j')
screen:expect_unchanged()
screen:expect([[
Line with some text with some text with |
some text with some text with some text |
with some text with some text |
^Line with some text with some text with |
some text with some text with some text |
with some text with some text |
@ |
|
]])
-- moving cursor down - whole bottom line shows
feed('<C-E>j')
screen:expect_unchanged()
screen:expect([[
<<<h some text with some text |
Line with some text with some text with |
some text with some text with some text |
with some text with some text |
^Line with some text with some text with |
some text with some text with some text |
with some text with some text |
|
]])
feed('G')
screen:expect_unchanged()
-- FIXME: different from vim onwards, this had in incorrect cursor position
-- in vim but we show an eob line.
screen:expect([[
<<<h some text with some text |
Line with some text with some text with |
some text with some text with some text |
with some text with some text |
Line with some text with some text with |
some text with some text with some text |
^with some text with some text |
|
]])
-- moving cursor up right after the >>> marker - no need to show whole line
feed('2gj3l2k')
screen:expect([[