From 5c997de8dc1e4885266fa884a2fb74f840e3bedc Mon Sep 17 00:00:00 2001 From: Evan Tang Date: Mon, 7 Nov 2022 10:43:22 -0600 Subject: [PATCH] riched20: Don't emit EN_CHANGE events during window creation. --- dlls/riched20/tests/editor.c | 2 +- dlls/riched20/txthost.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c index 226c8eb7eea..0474121182a 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -8949,7 +8949,7 @@ static void test_init_messages(void) ok(parent != 0, "Failed to create parent window\n"); change_received = FALSE; edit = new_window("RichEditWithEvents", 0, parent); - todo_wine ok(change_received == FALSE, "Creating a RichEdit should not make any EN_CHANGE events\n"); + ok(change_received == FALSE, "Creating a RichEdit should not make any EN_CHANGE events\n"); DestroyWindow(edit); DestroyWindow(parent); } diff --git a/dlls/riched20/txthost.c b/dlls/riched20/txthost.c index c53aa0a3e05..cb008f19c21 100644 --- a/dlls/riched20/txthost.c +++ b/dlls/riched20/txthost.c @@ -1142,6 +1142,7 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam, WCHAR *textW = NULL; LONG codepage = unicode ? CP_UNICODE : CP_ACP; int len; + LRESULT evmask; ITextServices_OnTxInPlaceActivate( host->text_srv, NULL ); @@ -1150,7 +1151,10 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam, text = unicode ? (void *)createW->lpszName : (void *)createA->lpszName; textW = ME_ToUnicode( codepage, text, &len ); } + ITextServices_TxSendMessage( host->text_srv, EM_GETEVENTMASK, 0, 0, &evmask ); + ITextServices_TxSendMessage( host->text_srv, EM_SETEVENTMASK, 0, evmask & ~ENM_CHANGE, &evmask ); ITextServices_TxSetText( host->text_srv, textW ); + ITextServices_TxSendMessage( host->text_srv, EM_SETEVENTMASK, 0, evmask, NULL ); if (lparam) ME_EndToUnicode( codepage, textW ); break; }