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

Alexandre Julliard julliard at winehq.org
Tue Feb 16 11:44:41 CST 2010


Module: wine
Branch: master
Commit: e5f0cdfcf6ba1595346c4c9ed1a7cbf3de418c8e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e5f0cdfcf6ba1595346c4c9ed1a7cbf3de418c8e

Author: Kusanagi Kouichi <slash at ac.auone-net.jp>
Date:   Tue Feb 16 20:06:11 2010 +0900

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

---

 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 affa435..0f99ad6 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);
@@ -1199,7 +1196,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;
@@ -1215,14 +1212,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);
 }
 
@@ -1255,21 +1254,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,




More information about the wine-cvs mailing list