Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/riched20/editor.c | 2 +-
dlls/riched20/txthost.c | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 9ac5d49a3db..cacad463963 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -3953,7 +3953,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
ME_StreamInRTFString(editor, 0, (char *)lParam);
}
else
- ME_SetText(editor, (void*)lParam, unicode);
+ ME_SetText( editor, (void*)lParam, TRUE );
}
else
TRACE("WM_SETTEXT - NULL\n");
diff --git a/dlls/riched20/txthost.c b/dlls/riched20/txthost.c
index 14cb19e8f45..23c9962bb3a 100644
--- a/dlls/riched20/txthost.c
+++ b/dlls/riched20/txthost.c
@@ -863,6 +863,18 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam,
SetWindowLongW( hwnd, GWL_STYLE, style );
return res;
}
+ case WM_SETTEXT:
+ {
+ char *textA = (char *)lparam;
+ WCHAR *text = (WCHAR *)lparam;
+ int len;
+
+ if (!unicode && textA && strncmp( textA, "{\\rtf", 5 ) && strncmp( textA, "{\\urtf", 6 ))
+ text = ME_ToUnicode( CP_ACP, textA, &len );
+ hr = ITextServices_TxSendMessage( host->text_srv, msg, wparam, (LPARAM)text, &res );
+ if (text != (WCHAR *)lparam) ME_EndToUnicode( CP_ACP, text );
+ break;
+ }
default:
res = ME_HandleMessage( editor, msg, wparam, lparam, unicode, &hr );
}
--
2.23.0