From 9ad89c6c4f89cd710d8244d8010b8b0ae30ba79d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 26 Oct 2017 22:04:04 +0200 Subject: patch 8.0.1223: crash when using autocomplete and tab pages Problem: Crash when using autocomplete and tab pages. Solution: Check if the current tab changed. (Christian Brabandt, closes #2239) --- src/popupmnu.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/popupmnu.c') diff --git a/src/popupmnu.c b/src/popupmnu.c index 418f0ca61..ec75281e7 100644 --- a/src/popupmnu.c +++ b/src/popupmnu.c @@ -566,6 +566,7 @@ pum_set_selected(int n, int repeat) && vim_strchr(p_cot, 'p') != NULL) { win_T *curwin_save = curwin; + tabpage_T *curtab_save = curtab; int res = OK; /* Open a preview window. 3 lines by default. Prefer @@ -653,8 +654,13 @@ pum_set_selected(int n, int repeat) curwin->w_cursor.lnum = 1; curwin->w_cursor.col = 0; - if (curwin != curwin_save && win_valid(curwin_save)) + if ((curwin != curwin_save && win_valid(curwin_save)) + || (curtab != curtab_save + && valid_tabpage(curtab_save))) { + if (curtab != curtab_save && valid_tabpage(curtab_save)) + goto_tabpage_tp(curtab_save, FALSE, FALSE); + /* When the first completion is done and the preview * window is not resized, skip the preview window's * status line redrawing. */ -- cgit v1.2.1