patch 9.0.0132: multi-byte characters in virtual text not handled correctly

Problem:    Multi-byte characters in virtual text not handled correctly.
Solution:   Count screen cells instead of bytes.
diff --git a/src/charset.c b/src/charset.c
index 2b65747..c213704 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1097,9 +1097,8 @@
 	    {
 		char_u *p = ((char_u **)wp->w_buffer->b_textprop_text.ga_data)[
 							       -tp->tp_id - 1];
-		int len = (int)STRLEN(p);
+		int len = vim_strsize(p);
 
-		// TODO: count screen cells
 		if (tp->tp_col == MAXCOL)
 		{
 		    // TODO: truncating
@@ -1454,8 +1453,9 @@
     if (cursor != NULL)
     {
 #ifdef FEAT_PROP_POPUP
-	// cursor is after inserted text
-	vcol += cts.cts_cur_text_width;
+	if ((State & MODE_INSERT) == 0)
+	    // cursor is after inserted text
+	    vcol += cts.cts_cur_text_width;
 #endif
 	if (*ptr == TAB
 		&& (State & MODE_NORMAL)