imm32: ImmNotifyIMM with CPS_CANCEL fully clears the composition string. Also enable respective tests.

oldstable
Aric Stewart 2008-01-04 12:22:03 -06:00 committed by Alexandre Julliard
parent d7cbaf572a
commit 6bc088b28c
2 changed files with 8 additions and 9 deletions

View File

@ -1406,15 +1406,18 @@ BOOL WINAPI ImmNotifyIME(
case CPS_CANCEL:
TRACE("%s - %s\n","NI_COMPOSITIONSTR","CPS_CANCEL");
{
HIMCC newCompStr;
BOOL send;
if (pX11DRV_ForceXIMReset)
pX11DRV_ForceXIMReset(root_context->IMC.hWnd);
newCompStr = updateCompStr(root_context->IMC.hCompStr, NULL, 0);
ImmDestroyIMCC(root_context->IMC.hCompStr);
root_context->IMC.hCompStr = newCompStr;
send = (root_context->IMC.hCompStr!=NULL);
ImmInternalPostIMEMessage(WM_IME_COMPOSITION, 0,
ImmDestroyIMCC(root_context->IMC.hCompStr);
root_context->IMC.hCompStr = NULL;
if (send)
ImmInternalPostIMEMessage(WM_IME_COMPOSITION, 0,
GCS_COMPSTR);
rc = TRUE;
}

View File

@ -183,11 +183,9 @@ static int test_ImmNotifyIME(void) {
ok(ImmNotifyIME(imc, NI_COMPOSITIONSTR, CPS_CANCEL, 0), "Canceling an "
"empty composition string succeeds.\n");
todo_wine {
ok(!msg_spy_find_msg(WM_IME_COMPOSITION), "Windows does not post "
"WM_IME_COMPOSITION in response to NI_COMPOSITIONSTR / CPS_CANCEL, if "
"the composition string being canceled is empty.\n");
}
msg_spy_flush_msgs();
@ -203,11 +201,9 @@ static int test_ImmNotifyIME(void) {
ok(ImmNotifyIME(imc, NI_COMPOSITIONSTR, CPS_CANCEL, 0), "Canceling an "
"empty composition string succeeds.\n");
todo_wine {
ok(!msg_spy_find_msg(WM_IME_COMPOSITION), "Windows does not post "
"WM_IME_COMPOSITION in response to NI_COMPOSITIONSTR / CPS_CANCEL, if "
"the composition string being canceled is empty.\n");
}
msg_spy_flush_msgs();
ImmReleaseContext(hwnd, imc);