[PATCH 2/4] riched20: fill REOBJECT.cp when an OLE object inserted with REO_CP_SELECTION

Dongwan Kim kdw6485 at gmail.com
Mon Nov 22 02:32:20 CST 2021


The character position should be filled in REOBJECT
which IRichEditOle::GetObject returns.

Signed-off-by: Dongwan Kim <kdw6485 at gmail.com>
---
 dlls/riched20/caret.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c
index beac8af50a1..9e1bb17b7f4 100644
--- a/dlls/riched20/caret.c
+++ b/dlls/riched20/caret.c
@@ -462,6 +462,7 @@ void editor_insert_oleobj(ME_TextEditor *editor, const REOBJECT *reo)
   struct re_object *reobj_prev = NULL;
   ME_Cursor *cursor, cursor_from_ofs;
   ME_Style *style;
+  LONG cp = 0;
 
   if (reo->cp == REO_CP_SELECTION)
     cursor = editor->pCursors;
@@ -482,12 +483,16 @@ void editor_insert_oleobj(ME_TextEditor *editor, const REOBJECT *reo)
   prev = run;
   while ((prev = run_prev_all_paras( prev )))
   {
+    cp += prev->len;
     if (prev->reobj)
     {
       reobj_prev = prev->reobj;
+      cp += prev->reobj->obj.cp;
       break;
     }
   }
+  if(run->reobj->obj.cp == REO_CP_SELECTION)
+    run->reobj->obj.cp = cp;
   if (reobj_prev)
     list_add_after(&reobj_prev->entry, &run->reobj->entry);
   else
-- 
2.30.2




More information about the wine-devel mailing list