vim-patch:9.0.0964: status line not redrawn when 'splitkeep' is "screen"

Problem:    Status line of other window not redrawn when dragging it when
            'splitkeep' is set to "screen".
Solution:   Set w_redr_status earlier. (Luuk van Baal, closes vim/vim#11635,
            closes vim/vim#11632)

74a694dbe2

Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
This commit is contained in:
Luuk van Baal
2022-11-28 18:41:20 +01:00
parent 77a0f4a542
commit bf0665b3f3
2 changed files with 50 additions and 1 deletions

View File

@@ -1793,4 +1793,22 @@ function Test_splitkeep_fold()
call VerifyScreenDump(buf, 'Test_splitkeep_fold_4', {}) call VerifyScreenDump(buf, 'Test_splitkeep_fold_4', {})
endfunction endfunction
function Test_splitkeep_status()
CheckScreendump
let lines =<< trim END
call setline(1, ['a', 'b', 'c'])
set nomodified
set splitkeep=screen
let win = winnr()
wincmd s
wincmd j
END
call writefile(lines, 'XTestSplitkeepStatus', 'D')
let buf = RunVimInTerminal('-S XTestSplitkeepStatus', #{rows: 10})
call term_sendkeys(buf, ":call win_move_statusline(win, 1)\<CR>")
call VerifyScreenDump(buf, 'Test_splitkeep_status_1', {})
endfunction
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@@ -6,9 +6,11 @@ local exec_lua = helpers.exec_lua
local feed = helpers.feed local feed = helpers.feed
describe('splitkeep', function() describe('splitkeep', function()
local screen = Screen.new() local screen
before_each(function() before_each(function()
clear('--cmd', 'set splitkeep=screen') clear('--cmd', 'set splitkeep=screen')
screen = Screen.new()
screen:attach() screen:attach()
end) end)
@@ -193,4 +195,33 @@ describe('splitkeep', function()
:quit | :quit |
]]) ]])
end) end)
-- oldtest: Test_splitkeep_status()
it('does not scroll when split in callback', function()
exec([[
call setline(1, ['a', 'b', 'c'])
set nomodified
set splitkeep=screen
let win = winnr()
wincmd s
wincmd j
]])
feed(':call win_move_statusline(win, 1)<CR>')
screen:expect([[
a |
b |
c |
~ |
~ |
~ |
~ |
[No Name] |
^a |
b |
c |
~ |
[No Name] |
|
]])
end)
end) end)