riched20: Use ME_PointFromChar to calculate the caret position.
diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c
index 4986f6e..76c169b 100644
--- a/dlls/riched20/caret.c
+++ b/dlls/riched20/caret.c
@@ -205,7 +205,7 @@
   ME_DisplayItem *para = pCursor->pPara;
   ME_DisplayItem *pSizeRun = run;
   ME_Context c;
-  SIZE sz = {0, 0};
+  int run_x;
 
   assert(height && x && y);
   assert(~para->member.para.nFlags & MEPF_REWRAP);
@@ -235,18 +235,12 @@
       pSizeRun = run = tmp;
       assert(run);
       assert(run->type == diRun);
-      sz = ME_GetRunSize(&c, &para->member.para,
-                         &run->member.run, run->member.run.len,
-                         row->member.row.nLMargin);
     }
   }
-  if (pCursor->nOffset) {
-    sz = ME_GetRunSize(&c, &para->member.para, &run->member.run,
-                       pCursor->nOffset, row->member.row.nLMargin);
-  }
+  run_x = ME_PointFromCharContext( &c, &run->member.run, pCursor->nOffset );
 
   *height = pSizeRun->member.run.nAscent + pSizeRun->member.run.nDescent;
-  *x = c.rcView.left + run->member.run.pt.x + sz.cx - editor->horz_si.nPos;
+  *x = c.rcView.left + run->member.run.pt.x + run_x - editor->horz_si.nPos;
   *y = c.rcView.top + para->member.para.pt.y + row->member.row.nBaseline
        + run->member.run.pt.y - pSizeRun->member.run.nAscent
        - editor->vert_si.nPos;