diff src/ex_getln.c @ 30329:8496a2c45962 v9.0.0500

patch 9.0.0500: when quitting cmdline window with CTRL-C it remains visible Commit: https://github.com/vim/vim/commit/b2f0ca820eae50994745106d824e215d87bd7926 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 18 15:08:19 2022 +0100 patch 9.0.0500: when quitting cmdline window with CTRL-C it remains visible Problem: When quitting the cmdline window with CTRL-C it remains visible. Solution: Redraw to avoid confusion. Adjust the error message. (closes #11152) Adjust the cursor position after CTRL-C.
author Bram Moolenaar <Bram@vim.org>
date Sun, 18 Sep 2022 16:15:03 +0200
parents 6b541aaaf39e
children 101f08b49ed3
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4631,13 +4631,11 @@ open_cmdwin(void)
 	    ccline.cmdlen = (int)STRLEN(ccline.cmdbuff);
 	    ccline.cmdbufflen = ccline.cmdlen + 1;
 	    ccline.cmdpos = curwin->w_cursor.col;
-	    if (ccline.cmdpos > ccline.cmdlen)
+	    // If the cursor is on the last character, it probably should be
+	    // after it.
+	    if (ccline.cmdpos == ccline.cmdlen - 1
+		    || ccline.cmdpos > ccline.cmdlen)
 		ccline.cmdpos = ccline.cmdlen;
-	    if (cmdwin_result == K_IGNORE)
-	    {
-		set_cmdspos_cursor();
-		redrawcmd();
-	    }
 	}
 
 # ifdef FEAT_CONCEAL
@@ -4664,6 +4662,15 @@ open_cmdwin(void)
 	// Restore window sizes.
 	win_size_restore(&winsizes);
 	skip_win_fix_cursor = FALSE;
+
+	if (cmdwin_result == K_IGNORE)
+	{
+	    // It can be confusing that the cmdwin still shows, redraw the
+	    // screen.
+	    update_screen(UPD_VALID);
+	    set_cmdspos_cursor();
+	    redrawcmd();
+	}
     }
 
     ga_clear(&winsizes);