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