changeset 31823:a5c68c2e5ae8 v9.0.1244

patch 9.0.1244: cursor displayed in wrong position when leaving Insert mode Commit: https://github.com/vim/vim/commit/0f843ef091eceb470caece1d90fdfe08926fe076 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jan 25 17:34:41 2023 +0000 patch 9.0.1244: cursor displayed in wrong position when leaving Insert mode Problem: Cursor briefly displayed in a wrong position when pressing Esc in Insert mode after autoindent was used. Solution: Do not adjust the cursor position for assumed deleted white space if text is following. (closes #11877)
author Bram Moolenaar <Bram@vim.org>
date Wed, 25 Jan 2023 18:45:04 +0100
parents 2f25be7e01fd
children 086864270b73
files src/getchar.c src/version.c
diffstat 2 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -3328,15 +3328,15 @@ vgetorpeek(int advance)
 		    {
 			if (curwin->w_wcol > 0)
 			{
-			    if (did_ai)
+			    // After auto-indenting and no text is following,
+			    // we are expecting to truncate the trailing
+			    // white-space, so find the last non-white
+			    // character -- webb
+			    if (did_ai && *skipwhite(ml_get_curline()
+						+ curwin->w_cursor.col) == NUL)
 			    {
 				chartabsize_T cts;
 
-				/*
-				 * We are expecting to truncate the trailing
-				 * white-space, so find the last non-white
-				 * character -- webb
-				 */
 				curwin->w_wcol = 0;
 				ptr = ml_get_curline();
 				init_chartabsize_arg(&cts, curwin,
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1244,
+/**/
     1243,
 /**/
     1242,