Module: wine Branch: master Commit: 4baf6e7edca4a377efdd38a3ab966ea4835b1378 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4baf6e7edca4a377efdd38a3ab...
Author: Kusanagi Kouichi slash@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;