From: Eric Pouech eric.pouech@gmail.com
Signed-off-by: Eric Pouech eric.pouech@gmail.com --- dlls/riched20/editor.c | 14 +++++++++++--- dlls/riched20/tests/editor.c | 1 - 2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 7b4f4b3cdf3..704546f1e95 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -1609,9 +1609,17 @@ static LRESULT ME_StreamIn(ME_TextEditor *editor, DWORD format, EDITSTREAM *stre { style = editor->pBuffer->pDefaultStyle; ME_AddRefStyle(style); - set_selection_cursors(editor, 0, 0); - ME_InternalDeleteText(editor, &editor->pCursors[1], - ME_GetTextLength(editor), FALSE); + if (format & SFF_SELECTION) + { + ME_GetSelection(editor, &selStart, &selEnd); + ME_InternalDeleteText(editor, selStart, to - from, FALSE); + } + else + { + set_selection_cursors(editor, 0, 0); + ME_InternalDeleteText(editor, &editor->pCursors[1], + ME_GetTextLength(editor), FALSE); + } from = to = 0; ME_ClearTempStyle(editor); editor_set_default_para_fmt( editor, &editor->pCursors[0].para->fmt ); diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c index 14a7558ee17..8fe64f1a9b5 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -1482,7 +1482,6 @@ static void test_EM_SETTEXTMODE(void) SendMessageA(hwndRichEdit, WM_PASTE, 0, 0);
len = SendMessageA(hwndRichEdit, WM_GETTEXTLENGTH, 0, 0); - todo_wine ok(len == 8 /*winewine*/, "Unexpected text length %u\n", len);
/*Select a character from the first "wine" string*/