Mercurial > vim
diff src/testdir/test_window_cmd.vim @ 32931:41482b74f548 v9.0.1772
patch 9.0.1772: Cursor may be adjusted in 'splitkeep'ed windows
Commit: https://github.com/vim/vim/commit/16af913eeefb288ce968fb87e09a597413861900
Author: Luuk van Baal <luukvbaal@gmail.com>
Date: Sun Aug 20 20:44:59 2023 +0200
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 20 Aug 2023 21:00:03 +0200 |
parents | 695b50472e85 |
children | 808cf14bad77 |
line wrap: on
line diff
--- a/src/testdir/test_window_cmd.vim +++ b/src/testdir/test_window_cmd.vim @@ -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