Commit 42812044 authored by Rémi Bernon's avatar Rémi Bernon Committed by Alexandre Julliard

imm32: Hide the composition window if the string is empty.

parent 1b26b17e
...@@ -98,6 +98,8 @@ static void input_context_set_comp_str( INPUTCONTEXT *ctx, const WCHAR *str, UIN ...@@ -98,6 +98,8 @@ static void input_context_set_comp_str( INPUTCONTEXT *ctx, const WCHAR *str, UIN
UINT size; UINT size;
BYTE *dst; BYTE *dst;
TRACE( "ctx %p, str %s\n", ctx, debugstr_wn( str, len ) );
size = sizeof(*compstr); size = sizeof(*compstr);
size += len * sizeof(WCHAR); /* GCS_COMPSTR */ size += len * sizeof(WCHAR); /* GCS_COMPSTR */
size += len; /* GCS_COMPSTRATTR */ size += len; /* GCS_COMPSTRATTR */
...@@ -310,20 +312,17 @@ static void ime_ui_paint( HIMC himc, HWND hwnd ) ...@@ -310,20 +312,17 @@ static void ime_ui_paint( HIMC himc, HWND hwnd )
static void ime_ui_update_window( INPUTCONTEXT *ctx, HWND hwnd ) static void ime_ui_update_window( INPUTCONTEXT *ctx, HWND hwnd )
{ {
COMPOSITIONSTRING *string; WCHAR *str;
UINT len;
if (ctx->hCompStr) string = ImmLockIMCC( ctx->hCompStr );
else string = NULL;
if (!string || string->dwCompStrLen == 0) if (!(str = input_context_get_comp_str( ctx, FALSE, &len )) || !*str)
ShowWindow( hwnd, SW_HIDE ); ShowWindow( hwnd, SW_HIDE );
else else
{ {
ShowWindow( hwnd, SW_SHOWNOACTIVATE ); ShowWindow( hwnd, SW_SHOWNOACTIVATE );
RedrawWindow( hwnd, NULL, NULL, RDW_ERASENOW | RDW_INVALIDATE ); RedrawWindow( hwnd, NULL, NULL, RDW_ERASENOW | RDW_INVALIDATE );
} }
free( str );
if (string) ImmUnlockIMCC( ctx->hCompStr );
ctx->hWnd = GetFocus(); ctx->hWnd = GetFocus();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment