Commit 6bc088b2 authored by Aric Stewart's avatar Aric Stewart Committed by Alexandre Julliard

imm32: ImmNotifyIMM with CPS_CANCEL fully clears the composition string. Also…

imm32: ImmNotifyIMM with CPS_CANCEL fully clears the composition string. Also enable respective tests.
parent d7cbaf57
...@@ -1406,15 +1406,18 @@ BOOL WINAPI ImmNotifyIME( ...@@ -1406,15 +1406,18 @@ BOOL WINAPI ImmNotifyIME(
case CPS_CANCEL: case CPS_CANCEL:
TRACE("%s - %s\n","NI_COMPOSITIONSTR","CPS_CANCEL"); TRACE("%s - %s\n","NI_COMPOSITIONSTR","CPS_CANCEL");
{ {
HIMCC newCompStr; BOOL send;
if (pX11DRV_ForceXIMReset) if (pX11DRV_ForceXIMReset)
pX11DRV_ForceXIMReset(root_context->IMC.hWnd); pX11DRV_ForceXIMReset(root_context->IMC.hWnd);
newCompStr = updateCompStr(root_context->IMC.hCompStr, NULL, 0); send = (root_context->IMC.hCompStr!=NULL);
ImmDestroyIMCC(root_context->IMC.hCompStr); ImmDestroyIMCC(root_context->IMC.hCompStr);
root_context->IMC.hCompStr = newCompStr; root_context->IMC.hCompStr = NULL;
ImmInternalPostIMEMessage(WM_IME_COMPOSITION, 0, if (send)
ImmInternalPostIMEMessage(WM_IME_COMPOSITION, 0,
GCS_COMPSTR); GCS_COMPSTR);
rc = TRUE; rc = TRUE;
} }
......
...@@ -183,11 +183,9 @@ static int test_ImmNotifyIME(void) { ...@@ -183,11 +183,9 @@ static int test_ImmNotifyIME(void) {
ok(ImmNotifyIME(imc, NI_COMPOSITIONSTR, CPS_CANCEL, 0), "Canceling an " ok(ImmNotifyIME(imc, NI_COMPOSITIONSTR, CPS_CANCEL, 0), "Canceling an "
"empty composition string succeeds.\n"); "empty composition string succeeds.\n");
todo_wine {
ok(!msg_spy_find_msg(WM_IME_COMPOSITION), "Windows does not post " ok(!msg_spy_find_msg(WM_IME_COMPOSITION), "Windows does not post "
"WM_IME_COMPOSITION in response to NI_COMPOSITIONSTR / CPS_CANCEL, if " "WM_IME_COMPOSITION in response to NI_COMPOSITIONSTR / CPS_CANCEL, if "
"the composition string being canceled is empty.\n"); "the composition string being canceled is empty.\n");
}
msg_spy_flush_msgs(); msg_spy_flush_msgs();
...@@ -203,11 +201,9 @@ static int test_ImmNotifyIME(void) { ...@@ -203,11 +201,9 @@ static int test_ImmNotifyIME(void) {
ok(ImmNotifyIME(imc, NI_COMPOSITIONSTR, CPS_CANCEL, 0), "Canceling an " ok(ImmNotifyIME(imc, NI_COMPOSITIONSTR, CPS_CANCEL, 0), "Canceling an "
"empty composition string succeeds.\n"); "empty composition string succeeds.\n");
todo_wine {
ok(!msg_spy_find_msg(WM_IME_COMPOSITION), "Windows does not post " ok(!msg_spy_find_msg(WM_IME_COMPOSITION), "Windows does not post "
"WM_IME_COMPOSITION in response to NI_COMPOSITIONSTR / CPS_CANCEL, if " "WM_IME_COMPOSITION in response to NI_COMPOSITIONSTR / CPS_CANCEL, if "
"the composition string being canceled is empty.\n"); "the composition string being canceled is empty.\n");
}
msg_spy_flush_msgs(); msg_spy_flush_msgs();
ImmReleaseContext(hwnd, imc); ImmReleaseContext(hwnd, imc);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment