fix(ui): ext_cmdline should not move cursor to curwin

Problem:  The ext_cmdline cursor position on the screen seems to rely on
          an implicit assumption that the event listener implements a
          cmdline window that is made the current window which is
          problematic (e.g. breaks 'incsearch' in the actual current
          window).
Solution: Remove this assumption and allow nvim_win_set_cursor() to move
          the cursor on the screen to a non-current window (previous
          commit).
This commit is contained in:
Luuk van Baal
2024-03-15 00:39:44 +01:00
parent c971f538ab
commit d41b8d4758
2 changed files with 25 additions and 3 deletions

View File

@@ -824,6 +824,29 @@ local function test_cmdline(linegrid)
|
]])
end)
it('does not move cursor to curwin #20309', function()
local win = api.nvim_get_current_win()
command('norm icmdlinewin')
command('new')
command('norm icurwin')
feed(':')
api.nvim_win_set_cursor(win, { 1, 7 })
screen:expect {
grid = [[
curwin |
{3:[No Name] [+] }|
cmdline^win |
{2:[No Name] [+] }|
|
]],
cmdline = { {
content = { { '' } },
firstc = ':',
pos = 0,
} },
}
end)
end
-- the representation of cmdline and cmdline_block contents changed with ext_linegrid