patch 9.0.0199: cursor position wrong with two right-aligned virtual texts

Problem:    Cursor position wrong with two right-aligned virtual texts.
Solution:   Add the padding for right-alignment. (issue #10906)
diff --git a/src/charset.c b/src/charset.c
index 2975cdb..a795984 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1181,6 +1181,7 @@
 		    if (tp->tp_col == MAXCOL)
 		    {
 			int below = (tp->tp_flags & TP_FLAG_ALIGN_BELOW);
+			int right = (tp->tp_flags & TP_FLAG_ALIGN_RIGHT);
 			int wrap = (tp->tp_flags & TP_FLAG_WRAP);
 			int len = (int)STRLEN(p);
 			int n_used = len;
@@ -1193,10 +1194,19 @@
 			    cells = textprop_size_after_trunc(wp,
 						     below, added, p, &n_used);
 			}
-			// right-aligned does not really matter here, same as
-			// "after"
 			if (below)
 			    cells += wp->w_width - (vcol + size) % wp->w_width;
+			else if (right)
+			{
+			    len = wp->w_width - vcol % wp->w_width;
+			    if (len > cells + size)
+				// add the padding for right-alignment
+				cells = len - size;
+			    else if (len == 0)
+				// padding to right-align in the next line
+				cells += cells > wp->w_width ? 0
+							  :wp->w_width - cells;
+			}
 #ifdef FEAT_LINEBREAK
 			no_sbr = TRUE;  // don't use 'showbreak' now
 #endif