diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 994e91ce3d5..4988f6e0746 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -3779,14 +3779,6 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, return 0; } - case EM_SETREADONLY: - { - if (wParam) - editor->styleFlags |= ES_READONLY; - else - editor->styleFlags &= ~ES_READONLY; - return 1; - } case EM_SETEVENTMASK: { DWORD nOldMask = editor->nEventMask; diff --git a/dlls/riched20/txthost.c b/dlls/riched20/txthost.c index 278b0a64379..5bd11c5aba2 100644 --- a/dlls/riched20/txthost.c +++ b/dlls/riched20/txthost.c @@ -1002,14 +1002,11 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam, } case EM_SETREADONLY: { - DWORD style; + DWORD op = wparam ? ECOOP_OR : ECOOP_AND; + DWORD mask = wparam ? ECO_READONLY : ~ECO_READONLY; - res = ME_HandleMessage( editor, msg, wparam, lparam, unicode, &hr ); - style = GetWindowLongW( hwnd, GWL_STYLE ); - style &= ~ES_READONLY; - if (wparam) style |= ES_READONLY; - SetWindowLongW( hwnd, GWL_STYLE, style ); - return res; + SendMessageW( hwnd, EM_SETOPTIONS, op, mask ); + return 1; } case WM_SETTEXT: {