diff src/charset.c @ 29918:e6e0f1c39edb v9.0.0297

patch 9.0.0297: cursor position wrong after right aligned virtual text Commit: https://github.com/vim/vim/commit/c8bf59e9b27f9d621818ffc61468abef45cedf37 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 28 16:39:22 2022 +0100 patch 9.0.0297: cursor position wrong after right aligned virtual text Problem: Cursor position wrong after right aligned virtual text. (Iizuka Masashi) Solution: Take the width of the column offset into account. (closes #10997) Also fix virtual text positioning.
author Bram Moolenaar <Bram@vim.org>
date Sun, 28 Aug 2022 17:45:03 +0200
parents bbe62ea78aac
children d8560d2c1f30
line wrap: on
line diff
--- a/src/charset.c
+++ b/src/charset.c
@@ -1187,7 +1187,8 @@ win_lbr_chartabsize(
 
 	for (i = 0; i < cts->cts_text_prop_count; ++i)
 	{
-	    textprop_T *tp = cts->cts_text_props + i;
+	    textprop_T	*tp = cts->cts_text_props + i;
+	    int		col_off = win_col_off(wp);
 
 	    // Watch out for the text being deleted.  "cts_text_props" is a
 	    // copy, the text prop may actually have been removed from the line.
@@ -1209,7 +1210,7 @@ win_lbr_chartabsize(
 			int n_extra = (int)STRLEN(p);
 
 			cells = text_prop_position(wp, tp,
-					    (vcol + size) % wp->w_width,
+			     (vcol + size) % (wp->w_width - col_off) + col_off,
 						     &n_extra, &p, NULL, NULL);
 #ifdef FEAT_LINEBREAK
 			no_sbr = TRUE;  // don't use 'showbreak' now