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