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

imm32: Re-create the IME UI window when IME changes.

parent 2504a2d7
......@@ -3150,21 +3150,24 @@ static BOOL is_ime_ui_msg(UINT msg)
static LRESULT ime_internal_msg( WPARAM wparam, LPARAM lparam)
{
HWND hwnd = (HWND)lparam;
HWND hwnd;
HIMC himc;
switch (wparam)
{
case IME_INTERNAL_ACTIVATE:
case IME_INTERNAL_DEACTIVATE:
hwnd = (HWND)lparam;
himc = ImmGetContext(hwnd);
ImmSetActiveContext(hwnd, himc, wparam == IME_INTERNAL_ACTIVATE);
ImmReleaseContext(hwnd, himc);
break;
case IME_INTERNAL_HKL_ACTIVATE:
ImmEnumInputContext( 0, enum_activate_layout, 0 );
hwnd = get_ime_ui_window();
break;
case IME_INTERNAL_HKL_DEACTIVATE:
hwnd = get_ime_ui_window();
break;
default:
FIXME("wparam = %Ix\n", wparam);
......
......@@ -4183,7 +4183,7 @@ static void test_ImmActivateLayout(void)
ok_ret( 1, EnumThreadWindows( GetCurrentThreadId(), enum_thread_ime_windows, (LPARAM)&ime_windows ) );
ok( !!ime_windows.ime_hwnd, "missing IME window\n" );
todo_wine ok( !!ime_windows.ime_ui_hwnd, "missing IME UI window\n" );
ok( !!ime_windows.ime_ui_hwnd, "missing IME UI window\n" );
todo_wine ok_ret( (UINT_PTR)ime_windows.ime_hwnd, (UINT_PTR)GetParent( ime_windows.ime_ui_hwnd ) );
todo_ImeDestroy = TRUE; /* Wine doesn't leak the IME */
......
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