mirror of
https://github.com/neovim/neovim.git
synced 2025-09-16 08:18:17 +00:00
fix: close floating windows when calling win_close()
This commit is contained in:
@@ -846,7 +846,7 @@ void goto_buffer(exarg_T *eap, int start, int dir, int count)
|
||||
enter_cleanup(&cs);
|
||||
|
||||
// Quitting means closing the split window, nothing else.
|
||||
win_close(curwin, true);
|
||||
win_close(curwin, true, false);
|
||||
swap_exists_action = SEA_NONE;
|
||||
swap_exists_did_quit = true;
|
||||
|
||||
@@ -1237,7 +1237,7 @@ int do_buffer(int action, int start, int dir, int count, int forceit)
|
||||
while (buf == curbuf
|
||||
&& !(curwin->w_closing || curwin->w_buffer->b_locked > 0)
|
||||
&& (!ONE_WINDOW || first_tabpage->tp_next != NULL)) {
|
||||
if (win_close(curwin, false) == FAIL) {
|
||||
if (win_close(curwin, false, false) == FAIL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -4822,7 +4822,7 @@ void do_arg_all(int count, int forceit, int keep_tabs)
|
||||
&& (first_tabpage->tp_next == NULL || !had_tab)) {
|
||||
use_firstwin = true;
|
||||
} else {
|
||||
win_close(wp, !buf_hide(buf) && !bufIsChanged(buf));
|
||||
win_close(wp, !buf_hide(buf) && !bufIsChanged(buf), false);
|
||||
// check if autocommands removed the next window
|
||||
if (!win_valid(wpnext)) {
|
||||
// start all over...
|
||||
@@ -5013,7 +5013,7 @@ void ex_buffer_all(exarg_T *eap)
|
||||
&& !ONE_WINDOW
|
||||
&& !(wp->w_closing
|
||||
|| wp->w_buffer->b_locked > 0)) {
|
||||
win_close(wp, false);
|
||||
win_close(wp, false, false);
|
||||
wpnext = firstwin; // just in case an autocommand does
|
||||
// something strange with windows
|
||||
tpnext = first_tabpage; // start all over...
|
||||
@@ -5094,7 +5094,7 @@ void ex_buffer_all(exarg_T *eap)
|
||||
enter_cleanup(&cs);
|
||||
|
||||
// User selected Quit at ATTENTION prompt; close this window.
|
||||
win_close(curwin, true);
|
||||
win_close(curwin, true, false);
|
||||
open_wins--;
|
||||
swap_exists_action = SEA_NONE;
|
||||
swap_exists_did_quit = true;
|
||||
@@ -5136,7 +5136,7 @@ void ex_buffer_all(exarg_T *eap)
|
||||
// BufWrite Autocommands made the window invalid, start over
|
||||
wp = lastwin;
|
||||
} else if (r) {
|
||||
win_close(wp, !buf_hide(wp->w_buffer));
|
||||
win_close(wp, !buf_hide(wp->w_buffer), false);
|
||||
open_wins--;
|
||||
wp = lastwin;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user