Skip to content

Commit

Permalink
patch 9.0.0465: cursor moves when cmdwin is closed when 'splitscroll'…
Browse files Browse the repository at this point in the history
… is off

Problem:    Cursor moves when cmdwin is closed when 'splitscroll' is off.
Solution:   Temporarily set 'splitscroll' when jumping back to the original
            window. (closes #11128)
  • Loading branch information
mityu authored and brammool committed Sep 14, 2022
1 parent 702bd6c commit e697d48
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/ex_getln.c
Expand Up @@ -4405,6 +4405,7 @@ open_cmdwin(void)
int save_restart_edit = restart_edit;
int save_State = State;
int save_exmode = exmode_active;
int save_p_spsc;
#ifdef FEAT_RIGHTLEFT
int save_cmdmsg_rl = cmdmsg_rl;
#endif
Expand Down Expand Up @@ -4643,7 +4644,11 @@ open_cmdwin(void)
// First go back to the original window.
wp = curwin;
set_bufref(&bufref, curbuf);

save_p_spsc = p_spsc;
p_spsc = TRUE;
win_goto(old_curwin);
p_spsc = save_p_spsc;

// win_goto() may trigger an autocommand that already closes the
// cmdline window.
Expand Down
8 changes: 6 additions & 2 deletions src/testdir/test_window_cmd.vim
Expand Up @@ -1734,9 +1734,13 @@ func Test_splitscroll_with_splits()
above copen | wincmd j
call assert_equal(win_screenpos(0)[0] - tabline, line("w0"))

" No scroll when opening cmdwin
only | norm ggLq:
" No scroll when opening cmdwin, and no cursor move when closing
" cmdwin.
only | norm ggL
let curpos = getcurpos()
norm q:
call assert_equal(1, line("w0"))
call assert_equal(curpos, getcurpos())

" Scroll when cursor becomes invalid in insert mode
norm Lic
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -703,6 +703,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
465,
/**/
464,
/**/
Expand Down

0 comments on commit e697d48

Please sign in to comment.