From 5d921e28c1cc33eced22bbfa823460ca241e3dc1 Mon Sep 17 00:00:00 2001 From: Sean Dewar Date: Sun, 23 Jul 2023 23:10:28 +0100 Subject: feat(api): allow win_close in cmdwin to close wins except previous Disallow closing the previous window from `nvim_win_close`, as this will cause issues. Again, no telling how safe this is. It also requires exposing old_curwin. :/ Also note that it's possible for the `&cmdheight` to change if, for example, there are 2 tabpages and `nvim_win_close` is used to close the last window in the other tabpage while `&stal` is 1. This is addressed in a later commit. --- src/nvim/api/window.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/nvim/api') diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index 666f09e890..350d934825 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -404,10 +404,11 @@ void nvim_win_close(Window window, Boolean force, Error *err) if (cmdwin_type != 0) { if (win == curwin) { cmdwin_result = Ctrl_C; - } else { + return; + } else if (win == cmdwin_old_curwin) { api_set_error(err, kErrorTypeException, "%s", e_cmdwin); + return; } - return; } tabpage_T *tabpage = win_find_tabpage(win); -- cgit