imm32: ImmNotifyIMM with CPS_CANCEL fully clears the composition string. Also enable respective tests.
This commit is contained in:
parent
d7cbaf572a
commit
6bc088b28c
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue