From: Paul Gofman <pgofman@codeweavers.com> --- dlls/imm32/ime.c | 12 ++++++++++++ dlls/imm32/tests/imm32.c | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/dlls/imm32/ime.c b/dlls/imm32/ime.c index 96be851f5a7..67ee18067d2 100644 --- a/dlls/imm32/ime.c +++ b/dlls/imm32/ime.c @@ -534,7 +534,19 @@ BOOL WINAPI ImeSelect( HIMC himc, BOOL select ) BOOL WINAPI ImeSetActiveContext( HIMC himc, BOOL flag ) { + INPUTCONTEXT *ctx; + UINT msg; + TRACE( "himc %p, flag %#x stub!\n", himc, flag ); + if (!flag && (msg = ime_set_composition_status( himc, FALSE ))) + { + if ((ctx = ImmLockIMC( himc ))) + { + input_context_set_comp_str( ctx, NULL, 0 ); + ImmUnlockIMC( himc ); + } + ime_send_message( himc, msg, 0, 0 ); + } return TRUE; } diff --git a/dlls/imm32/tests/imm32.c b/dlls/imm32/tests/imm32.c index 2a9e945e2e3..d82fe22783a 100644 --- a/dlls/imm32/tests/imm32.c +++ b/dlls/imm32/tests/imm32.c @@ -1158,11 +1158,11 @@ static void test_SCS_SETSTR(void) msg_spy_flush_msgs(); ImmSetActiveContext( hwnd, imc, FALSE ); msg = msg_spy_find_msg(WM_IME_ENDCOMPOSITION); - todo_wine ok(!!msg || broken(ends_comp_in_set && !msg), "did not find WM_IME_ENDCOMPOSITION.\n"); + ok(!!msg || broken(ends_comp_in_set && !msg), "did not find WM_IME_ENDCOMPOSITION.\n"); alen = ImmGetCompositionStringA(imc, GCS_COMPSTR, cstring, 20); - todo_wine ok(!alen, "got %ld.\n", alen); + ok(!alen, "got %ld.\n", alen); wlen = ImmGetCompositionStringW(imc, GCS_COMPSTR, wstring, 20); - todo_wine ok(!wlen, "got %ld.\n", alen); + ok(!wlen, "got %ld.\n", alen); msg_spy_flush_msgs(); ImmSetActiveContext( hwnd, imc, TRUE ); @@ -1176,7 +1176,7 @@ static void test_SCS_SETSTR(void) ret = ImmSetCompositionStringW(imc, SCS_SETSTR, string, sizeof(string), NULL, 2); ok(ret, "got error %lu.\n", GetLastError()); msg = msg_spy_find_msg(WM_IME_STARTCOMPOSITION); - todo_wine ok(!!msg, "did not find WM_IME_STARTCOMPOSITION.\n"); + ok(!!msg, "did not find WM_IME_STARTCOMPOSITION.\n"); msg = msg_spy_find_msg(WM_IME_COMPOSITION); ok(!!msg, "did not find WM_IME_COMPOSITION.\n"); msg = msg_spy_find_msg(WM_IME_ENDCOMPOSITION); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11193