diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-09-22 20:25:34 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-22 20:25:34 +0800 |
commit | 2083c1771ad2de44c8e085062a0777e694b0fd4d (patch) | |
tree | c52ab0bcfa19c0bd34818187420ea767caf5450c /src/nvim/window.c | |
parent | a7f6f0e2ddf90f9c05838e72ffb8c60148b49109 (diff) | |
download | rneovim-2083c1771ad2de44c8e085062a0777e694b0fd4d.tar.gz rneovim-2083c1771ad2de44c8e085062a0777e694b0fd4d.tar.bz2 rneovim-2083c1771ad2de44c8e085062a0777e694b0fd4d.zip |
fix(window): close floats first when closing buffer in other tab (#20284)
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r-- | src/nvim/window.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index cc20a5fcec..236663dfea 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -2464,7 +2464,8 @@ void close_windows(buf_T *buf, bool keep_curwin) for (tp = first_tabpage; tp != NULL; tp = nexttp) { nexttp = tp->tp_next; if (tp != curtab) { - FOR_ALL_WINDOWS_IN_TAB(wp, tp) { + // Start from tp_lastwin to close floating windows with the same buffer first. + for (win_T *wp = tp->tp_lastwin; wp != NULL; wp = wp->w_prev) { if (wp->w_buffer == buf && !(wp->w_closing || wp->w_buffer->b_locked > 0)) { win_close_othertab(wp, false, tp); |