winex11.drv: Show the default IME window only when necessary.

Kusanagi Kouichi slash at ac.auone-net.jp
Tue Feb 16 05:06:11 CST 2010


Signed-off-by: Kusanagi Kouichi <slash at ac.auone-net.jp>
---
 dlls/winex11.drv/ime.c |   25 ++++++++-----------------
 1 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/dlls/winex11.drv/ime.c b/dlls/winex11.drv/ime.c
index cfb0110..f7eecb8 100644
--- a/dlls/winex11.drv/ime.c
+++ b/dlls/winex11.drv/ime.c
@@ -87,7 +87,6 @@ static UINT WM_MSIME_DOCUMENTFEED;
 
 static LRESULT WINAPI IME_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
                                           LPARAM lParam);
-static void UpdateDataInDefaultIMEWindow(HIMC hHIMC, HWND hwnd, BOOL showable);
 
 static HIMC RealIMC(HIMC hIMC)
 {
@@ -933,8 +932,6 @@ BOOL WINAPI ImeSetCompositionString(HIMC hIMC, DWORD dwIndex, LPCVOID lpComp,
         }
     }
 
-    UpdateDataInDefaultIMEWindow(hIMC, myPrivate->hwndDefault,FALSE);
-
     GenerateIMEMessage(hIMC, WM_IME_COMPOSITION, wParam, flags);
     ImmUnlockIMCC(lpIMC->hPrivate);
     UnlockRealIMC(hIMC);
@@ -1186,7 +1183,7 @@ static void PaintDefaultIMEWnd(HIMC hIMC, HWND hwnd)
     UnlockRealIMC(hIMC);
 }
 
-static void UpdateDataInDefaultIMEWindow(HIMC hIMC, HWND hwnd, BOOL showable)
+static void UpdateDefaultIMEWindow(HIMC hIMC, HWND hwnd)
 {
     LPCOMPOSITIONSTRING compstr;
     LPINPUTCONTEXT lpIMC;
@@ -1202,14 +1199,16 @@ static void UpdateDataInDefaultIMEWindow(HIMC hIMC, HWND hwnd, BOOL showable)
 
     if (compstr == NULL || compstr->dwCompStrLen == 0)
         ShowWindow(hwnd,SW_HIDE);
-    else if (showable)
+    else
+    {
         ShowWindow(hwnd,SW_SHOWNOACTIVATE);
-
-    RedrawWindow(hwnd,NULL,NULL,RDW_ERASENOW|RDW_INVALIDATE);
+        RedrawWindow(hwnd, NULL, NULL, RDW_ERASENOW | RDW_INVALIDATE);
+    }
 
     if (compstr != NULL)
         ImmUnlockIMCC(lpIMC->hCompStr);
 
+    lpIMC->hWnd = GetFocus();
     UnlockRealIMC(hIMC);
 }
 
@@ -1242,21 +1241,13 @@ static void DefaultIMEComposition(HIMC hIMC, HWND hwnd, LPARAM lParam)
         UnlockRealIMC(hIMC);
     }
     else
-         UpdateDataInDefaultIMEWindow(hIMC,hwnd,TRUE);
+        UpdateDefaultIMEWindow(hIMC, hwnd);
 }
 
 static void DefaultIMEStartComposition(HIMC hIMC, HWND hwnd )
 {
-    LPINPUTCONTEXT lpIMC;
-
-    lpIMC = LockRealIMC(hIMC);
-    if (lpIMC == NULL)
-        return;
-
     TRACE("IME message WM_IME_STARTCOMPOSITION\n");
-    lpIMC->hWnd = GetFocus();
-    ShowWindow(hwnd,SW_SHOWNOACTIVATE);
-    UnlockRealIMC(hIMC);
+    UpdateDefaultIMEWindow(hIMC, hwnd);
 }
 
 static LRESULT ImeHandleNotify(HIMC hIMC, HWND hwnd, UINT msg, WPARAM wParam,
-- 
1.6.6.2




More information about the wine-patches mailing list