neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 2cbfa4b9af789303a434ecf62360ac247bfffc10
parent 2088521263d3bf9cfd23729adb1a7d152eaab104
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Mon, 22 Apr 2024 17:57:49 +0800

fix(window): don't go to unfocusable float when closing (#28455)


Diffstat:
Msrc/nvim/window.c | 3++-
Mtest/functional/ui/float_spec.lua | 19+++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/nvim/window.c b/src/nvim/window.c @@ -2869,7 +2869,8 @@ int win_close(win_T *win, bool free_buf, bool force) if (wp == curwin) { break; } - if (!wp->w_p_pvw && !bt_quickfix(wp->w_buffer)) { + if (!wp->w_p_pvw && !bt_quickfix(wp->w_buffer) + && !(wp->w_floating && !wp->w_config.focusable)) { curwin = wp; break; } diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua @@ -434,6 +434,25 @@ describe('float window', function() eq(winid, eval('win_getid()')) end) + it('is not active after closing window when non-focusable #28454', function() + command('copen') + local winid = exec_lua([[ + local bufnr = vim.api.nvim_create_buf(false, true) + local opts = { + relative = 'editor', + focusable = false, + height = 5, + width = 5, + col = 5, + row = 5, + } + return vim.api.nvim_open_win(bufnr, false, opts) + ]]) + command('wincmd t') + command('wincmd q') + neq(winid, curwin()) + end) + it('supports windo with focusable and non-focusable floats', function() local winids = exec_lua([[ local result = {vim.api.nvim_get_current_win()}