Module: wine Branch: master Commit: 4baf6e7edca4a377efdd38a3ab966ea4835b1378 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4baf6e7edca4a377efdd38a3ab... Author: Kusanagi Kouichi <slash(a)ma.neweb.ne.jp> Date: Thu Apr 24 08:29:54 2008 +0900 winex11: Generate WM_IME_ENDCOMPOSITION when composition string is canceled. --- dlls/winex11.drv/ime.c | 18 ++++++------------ 1 files changed, 6 insertions(+), 12 deletions(-) diff --git a/dlls/winex11.drv/ime.c b/dlls/winex11.drv/ime.c index c3e5ccf..6614213 100644 --- a/dlls/winex11.drv/ime.c +++ b/dlls/winex11.drv/ime.c @@ -769,25 +769,19 @@ BOOL WINAPI NotifyIME(HIMC hIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue) case CPS_REVERT: FIXME("CPS_REVERT\n"); break; case CPS_CANCEL: { - BOOL send; - LPCOMPOSITIONSTRING lpCompStr; + LPIMEPRIVATE myPrivate; TRACE("CPS_CANCEL\n"); X11DRV_ForceXIMReset(lpIMC->hWnd); - lpCompStr = ImmLockIMCC(lpIMC->hCompStr); - send = (lpCompStr->dwCompStrLen != 0); - ImmUnlockIMCC(lpIMC->hCompStr); - - if (send) + myPrivate = (LPIMEPRIVATE)ImmLockIMCC(lpIMC->hPrivate); + if (myPrivate->bInComposition) { - HIMCC newCompStr; - newCompStr = updateCompStr(lpIMC->hCompStr, NULL, 0); - ImmDestroyIMCC(lpIMC->hCompStr); - lpIMC->hCompStr = newCompStr; - GenerateIMEMessage(hIMC, WM_IME_COMPOSITION, 0, GCS_COMPSTR); + GenerateIMEMessage(hIMC, WM_IME_ENDCOMPOSITION, 0, 0); + myPrivate->bInComposition = FALSE; } + ImmUnlockIMCC(lpIMC->hPrivate); bRet = TRUE; } break;