Dylan Smith : richedit: Avoid rewrapping all text for isolated format changes.

Alexandre Julliard julliard at winehq.org
Tue Jan 6 08:23:12 CST 2009


Module: wine
Branch: master
Commit: 28645c64d54f74283d13e4ea05b549d74029ee23
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=28645c64d54f74283d13e4ea05b549d74029ee23

Author: Dylan Smith <dylan.ah.smith at gmail.com>
Date:   Mon Jan  5 13:14:41 2009 -0500

richedit: Avoid rewrapping all text for isolated format changes.

When the character or paragraph format is changed the paragraph that
is changed is already marked to be rewrapped, so ME_MarkAllForWrapping
shouldn't be called.  Since ME_RewrapRepaint uses this function, it
shouldn't be called in these circumstances, since rewrapping all the
text can cause noticable delays when working with a lot of text.

---

 dlls/riched20/editor.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index c7b8f40..107dcea 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -3263,7 +3263,11 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
     }
     ME_CommitUndo(editor);
     if (bRepaint)
-      ME_RewrapRepaint(editor);
+    {
+      ME_WrapMarkedParagraphs(editor);
+      ME_UpdateScrollBar(editor);
+      ME_Repaint(editor);
+    }
     return 1;
   }
   case EM_GETCHARFORMAT:
@@ -3285,7 +3289,9 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
   case EM_SETPARAFORMAT:
   {
     BOOL result = ME_SetSelectionParaFormat(editor, (PARAFORMAT2 *)lParam);
-    ME_RewrapRepaint(editor);
+    ME_WrapMarkedParagraphs(editor);
+    ME_UpdateScrollBar(editor);
+    ME_Repaint(editor);
     ME_CommitUndo(editor);
     return result;
   }




More information about the wine-cvs mailing list