Kusanagi Kouichi : winex11: Generate WM_IME_ENDCOMPOSITION when composition string is canceled.
Alexandre Julliard
julliard at winehq.org
Thu Apr 24 06:24:11 CDT 2008
Module: wine
Branch: master
Commit: 4baf6e7edca4a377efdd38a3ab966ea4835b1378
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4baf6e7edca4a377efdd38a3ab966ea4835b1378
Author: Kusanagi Kouichi <slash at 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;
More information about the wine-cvs
mailing list