aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/menu.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index 9d37035247..b060464383 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -28,6 +28,7 @@
#include "nvim/ui.h"
#include "nvim/eval/typval.h"
#include "nvim/screen.h"
+#include "nvim/window.h"
#define MENUDEPTH 10 /* maximum depth of menus */
@@ -1567,9 +1568,10 @@ void winbar_click(win_T *wp, int col)
check_cursor();
}
+ // Note: the command might close the current window.
execute_menu(NULL, item->wb_menu);
- if (save_curwin != NULL) {
+ if (save_curwin != NULL && win_valid(save_curwin)) {
curwin = save_curwin;
curbuf = curwin->w_buffer;
VIsual = save_visual;
@@ -1578,6 +1580,9 @@ void winbar_click(win_T *wp, int col)
VIsual_reselect = save_visual_reselect;
VIsual_mode = save_visual_mode;
}
+ if (!win_valid(wp)) {
+ break;
+ }
}
}
}