Christoph von Wittich : riched20: Handle SCF_WORD.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Apr 1 10:40:59 CDT 2015


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

Author: Christoph von Wittich <Christoph_vW at ReactOS.org>
Date:   Sun Mar 29 22:07:50 2015 +0200

riched20: Handle SCF_WORD.

---

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

diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c
index 043a32a..e3e42cc 100644
--- a/dlls/riched20/caret.c
+++ b/dlls/riched20/caret.c
@@ -710,7 +710,7 @@ int ME_MoveCursorChars(ME_TextEditor *editor, ME_Cursor *cursor, int nRelOfs)
 }
 
 
-static BOOL
+BOOL
 ME_MoveCursorWords(ME_TextEditor *editor, ME_Cursor *cursor, int nRelOfs)
 {
   ME_DisplayItem *pRun = cursor->pRun, *pOtherRun;
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 171ec69..a4403ca 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -3510,8 +3510,12 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
       if (editor->mode & TM_PLAINTEXT)
         return 0;
       if (wParam & SCF_WORD) {
-        FIXME("EM_SETCHARFORMAT: word selection not supported\n");
-        return 0;
+        ME_Cursor start;
+        ME_Cursor end = editor->pCursors[0];
+        ME_MoveCursorWords(editor, &end, +1);
+        start = end;
+        ME_MoveCursorWords(editor, &start, -1);
+        ME_SetCharFormat(editor, &start, &end, p);
       }
       bRepaint = ME_IsSelection(editor);
       ME_SetSelectionCharFormat(editor, p);
diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h
index e4c13a9..e2b837a 100644
--- a/dlls/riched20/editor.h
+++ b/dlls/riched20/editor.h
@@ -166,6 +166,7 @@ void ME_SetDefaultCharFormat(ME_TextEditor *editor, CHARFORMAT2W *mod) DECLSPEC_
 /* caret.c */
 void ME_SetCursorToStart(ME_TextEditor *editor, ME_Cursor *cursor) DECLSPEC_HIDDEN;
 int ME_SetSelection(ME_TextEditor *editor, int from, int to) DECLSPEC_HIDDEN;
+BOOL ME_MoveCursorWords(ME_TextEditor *editor, ME_Cursor *cursor, int nRelOfs) DECLSPEC_HIDDEN;
 void ME_HideCaret(ME_TextEditor *ed) DECLSPEC_HIDDEN;
 void ME_ShowCaret(ME_TextEditor *ed) DECLSPEC_HIDDEN;
 void ME_MoveCaret(ME_TextEditor *ed) DECLSPEC_HIDDEN;




More information about the wine-cvs mailing list