1
0
forked from aniani/vim

patch 9.0.1772: Cursor may be adjusted in 'splitkeep'ed windows

Problem:    Cursor is adjusted in window that did not change in size by
            'splitkeep'.
Solution:   Only check that cursor position is valid in a window that
            has changed in size.

closes: #12509

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
This commit is contained in:
Luuk van Baal
2023-08-20 20:44:59 +02:00
committed by Christian Brabandt
parent 478668013f
commit 16af913eee
7 changed files with 65 additions and 3 deletions

View File

@@ -1861,6 +1861,33 @@ func Test_splitkeep_misc()
set splitkeep&
endfunc
func Test_splitkeep_cursor()
CheckScreendump
let lines =<< trim END
set splitkeep=screen
autocmd CursorMoved * wincmd p | wincmd p
call setline(1, range(1, 200))
func CursorEqualize()
call cursor(100, 1)
wincmd =
endfunc
wincmd s
call CursorEqualize()
END
call writefile(lines, 'XTestSplitkeepCallback', 'D')
let buf = RunVimInTerminal('-S XTestSplitkeepCallback', #{rows: 8})
call VerifyScreenDump(buf, 'Test_splitkeep_cursor_1', {})
call term_sendkeys(buf, "j")
call VerifyScreenDump(buf, 'Test_splitkeep_cursor_2', {})
call term_sendkeys(buf, ":set scrolloff=0\<CR>G")
call VerifyScreenDump(buf, 'Test_splitkeep_cursor_3', {})
call StopVimInTerminal(buf)
endfunc
func Test_splitkeep_callback()
CheckScreendump
let lines =<< trim END