diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/ex_cmds2.c | 2 | ||||
-rw-r--r-- | src/nvim/window.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 210539d6a4..aff9dce7c1 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -590,7 +590,7 @@ void ex_listdo(exarg_T *eap) break; } assert(wp); - execute = !wp->w_floating || wp->w_config.focusable; + execute = !wp->w_floating || (!wp->w_config.hide && wp->w_config.focusable); if (execute) { win_goto(wp); if (curwin != wp) { diff --git a/src/nvim/window.c b/src/nvim/window.c index f61485ccb3..f7d5ee92cd 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -359,13 +359,13 @@ newwindow: wp = lastwin; // wrap around } while (wp != NULL && wp->w_floating - && !wp->w_config.focusable) { + && (wp->w_config.hide || !wp->w_config.focusable)) { wp = wp->w_prev; } } else { // go to next window wp = curwin->w_next; while (wp != NULL && wp->w_floating - && !wp->w_config.focusable) { + && (wp->w_config.hide || !wp->w_config.focusable)) { wp = wp->w_next; } if (wp == NULL) { @@ -2851,7 +2851,7 @@ int win_close(win_T *win, bool free_buf, bool force) break; } if (!wp->w_p_pvw && !bt_quickfix(wp->w_buffer) - && !(wp->w_floating && !wp->w_config.focusable)) { + && !(wp->w_floating && (wp->w_config.hide || !wp->w_config.focusable))) { curwin = wp; break; } |