diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-08-10 21:21:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-10 21:21:13 +0200 |
commit | c190415dc29b518e87db9bcd2956933873bd81bf (patch) | |
tree | 9aed5ffb3e6ce942e6b6ad854bcd4785bcd35887 /src | |
parent | d8d371994103a965365349b6ca51a0ce9c2fb4f8 (diff) | |
parent | 67664c74f8ab016e9c7aa3ede96dc66fcb4c9684 (diff) | |
download | rneovim-c190415dc29b518e87db9bcd2956933873bd81bf.tar.gz rneovim-c190415dc29b518e87db9bcd2956933873bd81bf.tar.bz2 rneovim-c190415dc29b518e87db9bcd2956933873bd81bf.zip |
Merge pull request #10738 from bfredl/cmdwinclose
api/window: disallow closing non-current window in cmdwin state
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/window.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index 0103e17176..e279edebde 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -541,14 +541,19 @@ void nvim_win_close(Window window, Boolean force, Error *err) if (!win) { return; } - tabpage_T *tabpage = win_find_tabpage(win); + if (cmdwin_type != 0) { + if (win == curwin) { + cmdwin_result = Ctrl_C; + } else { + api_set_error(err, kErrorTypeException, "%s", _(e_cmdwin)); + } + return; + } + + tabpage_T *tabpage = win_find_tabpage(win); TryState tstate; try_enter(&tstate); - if (cmdwin_type != 0 && win == curwin) { - cmdwin_result = Ctrl_C; - } else { - ex_win_close(force, win, tabpage == curtab ? NULL : tabpage); - } + ex_win_close(force, win, tabpage == curtab ? NULL : tabpage); vim_ignored = try_leave(&tstate, err); } |