changeset 15569:43fa814a7977 v8.1.0792

patch 8.1.0792: bad display if opening cmdline window from Insert completion commit https://github.com/vim/vim/commit/9e26f7d31fbb780613fa700fe61de3e0b4ff2ef6 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 22 22:08:09 2019 +0100 patch 8.1.0792: bad display if opening cmdline window from Insert completion Problem: Popup menu is displayed on top of the cmdline window if it is opened from Insert completion. (Bjorn Linse) Solution: Remove the popup menu. Restore the cursor position. (closes #3838)
author Bram Moolenaar <Bram@vim.org>
date Tue, 22 Jan 2019 22:15:05 +0100
parents 16ab7979815a
children 78c9cce2bac9
files src/edit.c src/ex_getln.c src/version.c
diffstat 3 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/edit.c
+++ b/src/edit.c
@@ -8537,6 +8537,7 @@ ins_reg(void)
     ++no_u_sync;
     if (regname == '=')
     {
+	pos_T	curpos = curwin->w_cursor;
 # ifdef HAVE_INPUT_METHOD
 	int	im_on = im_get_status();
 # endif
@@ -8545,8 +8546,12 @@ ins_reg(void)
 	u_sync_once = 2;
 
 	regname = get_expr_register();
+
+	// Cursor may be moved back a column.
+	curwin->w_cursor = curpos;
+	check_cursor();
 # ifdef HAVE_INPUT_METHOD
-	/* Restore the Input Method. */
+	// Restore the Input Method.
 	if (im_on)
 	    im_set_active(TRUE);
 # endif
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -7268,6 +7268,10 @@ open_cmdwin(void)
     /* Don't execute autocommands while creating the window. */
     block_autocmds();
 
+    // When using completion in Insert mode with <C-R>=<C-F> one can open the
+    // command line window, but we don't want the popup menu then.
+    pum_undisplay();
+
     /* don't use a new tab page */
     cmdmod.tab = 0;
     cmdmod.noswapfile = 1;
--- a/src/version.c
+++ b/src/version.c
@@ -792,6 +792,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    792,
+/**/
     791,
 /**/
     790,