richedit: Add closing actions for IRichEditOle_fnInsertObject.

Dylan Smith dylan.ah.smith at gmail.com
Mon Aug 10 09:53:48 CDT 2009


Previously inserting the object didn't result in the text being wrapped,
which would cause an assertion error when this is checked for during
repainting the text.  It is also important to invalidate the affected
areas of text, update the scrollbar, and end the creation of undo
transactions for this insertion.
---
 dlls/riched20/caret.c   |    2 +-
 dlls/riched20/richole.c |    2 ++
 2 files changed, 3 insertions(+), 1 deletions(-)
-------------- next part --------------
diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c
index 33dbdaf..058d278 100644
--- a/dlls/riched20/caret.c
+++ b/dlls/riched20/caret.c
@@ -459,7 +459,7 @@ void ME_InsertOLEFromCursor(ME_TextEditor *editor, const REOBJECT* reo, int nCur
                                        MERF_GRAPHICS);
   di->member.run.ole_obj = ALLOC_OBJ(*reo);
   ME_CopyReObject(di->member.run.ole_obj, reo);
-  ME_SendSelChange(editor);
+  ME_ReleaseStyle(pStyle);
 }
 
 
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 326ecc5..61cf6bb 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -388,6 +388,8 @@ IRichEditOle_fnInsertObject(IRichEditOle *me, REOBJECT *reo)
     if (reo->polesite)  IOleClientSite_AddRef(reo->polesite);
 
     ME_InsertOLEFromCursor(This->editor, reo, 0);
+    ME_CommitUndo(This->editor);
+    ME_UpdateRepaint(This->editor);
     return S_OK;
 }
 


More information about the wine-patches mailing list