From fdd376e514cc0f581dccf05946b17b254ec0aca7 Mon Sep 17 00:00:00 2001 From: Akihiro Sagawa Date: Fri, 17 Nov 2017 00:12:13 +0900 Subject: [PATCH] winemac: Keep the result string in the IME UI window procedure. This is winemac.drv port from winex11.drv. Please refer to b8dc1e7cde64c212882958c0806b50911a360fb9. Signed-off-by: Akihiro Sagawa Signed-off-by: Aric Stewart Signed-off-by: Alexandre Julliard --- dlls/winemac.drv/ime.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/dlls/winemac.drv/ime.c b/dlls/winemac.drv/ime.c index 846f9bd26d3..8ea6ae85bd3 100644 --- a/dlls/winemac.drv/ime.c +++ b/dlls/winemac.drv/ime.c @@ -965,6 +965,11 @@ static BOOL IME_SetCompositionString(void* 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) @@ -1166,7 +1171,6 @@ static void DefaultIMEComposition(HIMC hIMC, HWND hwnd, LPARAM lParam) LPCOMPOSITIONSTRING compstr; LPBYTE compdata; LPWSTR ResultStr; - HIMCC newCompStr; LPINPUTCONTEXT lpIMC; lpIMC = LockRealIMC(hIMC); @@ -1179,11 +1183,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