From ae88e4656305f1f760b4aa2a0f29bfc11d6d80b6 Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Thu, 11 Apr 2019 20:20:17 +0200 Subject: float: always change to valid windows (#9878) Using `:wincmd j` and friends doesn't make much sense to a floating window. For convenience though, any direction will simply change to the previous window. Make sure the previous window is valid, not the current window, and not another floating window. Change to the first window (which is never a floating window) otherwise. --- src/nvim/window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/window.c b/src/nvim/window.c index 237338f974..9555c88138 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -4037,7 +4037,7 @@ win_T *win_vert_neighbor(tabpage_T *tp, win_T *wp, bool up, long count) foundfr = wp->w_frame; if (wp->w_floating) { - return prevwin; + return win_valid(prevwin) && !prevwin->w_floating ? prevwin : firstwin; } while (count--) { @@ -4118,7 +4118,7 @@ win_T *win_horz_neighbor(tabpage_T *tp, win_T *wp, bool left, long count) foundfr = wp->w_frame; if (wp->w_floating) { - return prevwin; + return win_valid(prevwin) && !prevwin->w_floating ? prevwin : firstwin; } while (count--) { -- cgit