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.
This commit is contained in:
Sean Dewar
2023-07-23 23:10:28 +01:00
parent 6b4970f6e0
commit 5d921e28c1
4 changed files with 17 additions and 6 deletions

View File

@@ -831,6 +831,7 @@ EXTERN bool km_startsel INIT(= false);
EXTERN int cmdwin_type INIT(= 0); ///< type of cmdline window or 0
EXTERN int cmdwin_result INIT(= 0); ///< result of cmdline window or 0
EXTERN int cmdwin_level INIT(= 0); ///< cmdline recursion level
EXTERN win_T *cmdwin_old_curwin INIT(= NULL); ///< curwin before opening cmdline window or NULL
EXTERN char no_lines_msg[] INIT(= N_("--No lines in buffer--"));