From: Rémi Bernon rbernon@codeweavers.com
--- dlls/imm32/ime.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/imm32/ime.c b/dlls/imm32/ime.c index 60672b366ab..24270e89291 100644 --- a/dlls/imm32/ime.c +++ b/dlls/imm32/ime.c @@ -653,11 +653,7 @@ BOOL WINAPI NotifyIME( HIMC himc, DWORD action, DWORD index, DWORD value ) } break; case IMC_SETOPENSTATUS: - if (!ctx->fOpen) - { - input_context_set_comp_str( ctx, NULL, 0 ); - if ((msg = ime_set_composition_status( himc, FALSE ))) ime_send_message( himc, msg, 0, 0 ); - } + if (!ctx->fOpen) ImmNotifyIME( himc, NI_COMPOSITIONSTR, CPS_COMPLETE, 0 ); NtUserNotifyIMEStatus( ctx->hWnd, ctx->fOpen ); break; } @@ -691,12 +687,12 @@ BOOL WINAPI NotifyIME( HIMC himc, DWORD action, DWORD index, DWORD value ) if (flags) ime_send_message( himc, WM_IME_COMPOSITION, wchr, flags ); }
- ImmSetOpenStatus( himc, FALSE ); - break; + /* fallthrough */ } case CPS_CANCEL: input_context_set_comp_str( ctx, NULL, 0 ); - ImmSetOpenStatus( himc, FALSE ); + if ((msg = ime_set_composition_status( himc, FALSE ))) + ime_send_message( himc, msg, 0, 0 ); break; default: FIXME( "himc %p, action %#lx, index %#lx, value %#lx stub!\n", himc, action, index, value );