In Wine’s **IMM32** implementation, `ctx->hWnd` should be properly set in the `ImmSetActiveContext` function to maintain the correct association between the **input method context (IMC)** and the specific window. (refer dlls/imm32/imm.c:831 When `ime_ui_update_window` directly modifies `ctx->hWnd` to the handle returned by `GetFocus()`, the following issues occur: 1. If the current focus window differs from the originally associated window, the IMC–window mapping becomes invalid. 2. Querying the IMC using the window handle will return an incorrect **INPUTCONTEXT**. ### suggest: **Simply remove the line `ctx->hWnd = GetFocus();` from the `ime_ui_update_window` function.** Removing this line is safe because the `ime_ui_paint` function already includes proper fallback logic: dlls/imm32/ime.c:257-258 This fallback logic uses `GetFocus()` only when `ctx->hWnd` is `NULL`, ensuring correct handling when the window handle is missing, without breaking the IMC–window mapping. The core of this issue lies in the fact that the `hWnd` field of **INPUTCONTEXT** should retain the value set by `ImmSetActiveContext` to maintain the correct relationship between the IMC and its associated window.\ Any direct modification of this field elsewhere may corrupt that relationship. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9097#note_117780