Akihiro Sagawa : winex11: Keep the result string in the IME UI window procedure.
Alexandre Julliard
julliard at winehq.org
Tue Nov 14 16:18:48 CST 2017
Module: wine
Branch: master
Commit: b8dc1e7cde64c212882958c0806b50911a360fb9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b8dc1e7cde64c212882958c0806b50911a360fb9
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Wed Nov 15 00:18:51 2017 +0900
winex11: Keep the result string in the IME UI window procedure.
Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/imm32/tests/imm32.c | 1 -
dlls/winex11.drv/ime.c | 11 +++++------
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/dlls/imm32/tests/imm32.c b/dlls/imm32/tests/imm32.c
index bf0f4b2..12e8f99 100644
--- a/dlls/imm32/tests/imm32.c
+++ b/dlls/imm32/tests/imm32.c
@@ -380,7 +380,6 @@ static LRESULT WINAPI test_ime_wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, LPAR
imc = ImmGetContext(hWnd);
size = ImmGetCompositionStringW(imc, GCS_RESULTSTR,
wstring, sizeof(wstring));
- todo_wine
ok(size > 0, "ImmGetCompositionString(GCS_RESULTSTR) is %d\n", size);
ImmReleaseContext(hwnd, imc);
diff --git a/dlls/winex11.drv/ime.c b/dlls/winex11.drv/ime.c
index 0f4d2b2..d0746c5 100644
--- a/dlls/winex11.drv/ime.c
+++ b/dlls/winex11.drv/ime.c
@@ -906,6 +906,11 @@ BOOL WINAPI ImeSetCompositionString(HIMC hIMC, DWORD dwIndex, LPCVOID lpComp,
myPrivate->bInComposition = TRUE;
}
+ /* clear existing result */
+ newCompStr = updateResultStr(lpIMC->hCompStr, NULL, 0);
+ ImmDestroyIMCC(lpIMC->hCompStr);
+ lpIMC->hCompStr = newCompStr;
+
flags = GCS_COMPSTR;
if (dwCompLen && lpComp)
@@ -1256,7 +1261,6 @@ static void DefaultIMEComposition(HIMC hIMC, HWND hwnd, LPARAM lParam)
LPCOMPOSITIONSTRING compstr;
LPBYTE compdata;
LPWSTR ResultStr;
- HIMCC newCompStr;
LPINPUTCONTEXT lpIMC;
lpIMC = LockRealIMC(hIMC);
@@ -1269,11 +1273,6 @@ static void DefaultIMEComposition(HIMC hIMC, HWND hwnd, LPARAM lParam)
ResultStr = (LPWSTR)(compdata + compstr->dwResultStrOffset);
GenerateIMECHARMessages(hIMC, ResultStr, compstr->dwResultStrLen);
ImmUnlockIMCC(lpIMC->hCompStr);
-
- /* clear the buffer */
- newCompStr = updateResultStr(lpIMC->hCompStr, NULL, 0);
- ImmDestroyIMCC(lpIMC->hCompStr);
- lpIMC->hCompStr = newCompStr;
UnlockRealIMC(hIMC);
}
else
More information about the wine-cvs
mailing list