From 887a05376d7b7a8fd01c3a60db563cae71ef01ad Mon Sep 17 00:00:00 2001 From: Zhenyu FU Date: Sun, 23 Aug 2026 13:32:59 +0800 Subject: [PATCH 1/2] feat: win: disable IME on VM control window Signed-off-by: Zhenyu FU --- src/backend_win/vm_display_idd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend_win/vm_display_idd.c b/src/backend_win/vm_display_idd.c index 4f386da..1a57b3b 100644 --- a/src/backend_win/vm_display_idd.c +++ b/src/backend_win/vm_display_idd.c @@ -43,6 +43,7 @@ #pragma comment(lib, "d3dcompiler.lib") #pragma comment(lib, "dwmapi.lib") #pragma comment(lib, "ole32.lib") +#pragma comment(lib, "imm32.lib") #ifndef DWMWA_USE_IMMERSIVE_DARK_MODE #define DWMWA_USE_IMMERSIVE_DARK_MODE 20 @@ -2022,6 +2023,7 @@ static LRESULT CALLBACK idd_wnd_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) CREATESTRUCTW *cs = (CREATESTRUCTW *)lp; SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR)cs->lpCreateParams); AddClipboardFormatListener(hwnd); + ImmAssociateContextEx(hwnd, NULL, 0); return 0; } From 6834443288357f3d2d35fbc7adc9efc5e60b8a68 Mon Sep 17 00:00:00 2001 From: Zhenyu FU Date: Sun, 23 Aug 2026 14:14:21 +0800 Subject: [PATCH 2/2] disbale child window IME for robustness Signed-off-by: Zhenyu FU --- src/backend_win/vm_display_idd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend_win/vm_display_idd.c b/src/backend_win/vm_display_idd.c index 1a57b3b..f73df1a 100644 --- a/src/backend_win/vm_display_idd.c +++ b/src/backend_win/vm_display_idd.c @@ -1930,6 +1930,8 @@ static DWORD WINAPI idd_window_thread_proc(LPVOID param) WS_CHILD | WS_VISIBLE, 0, 0, rc.right, rc.bottom, d->hwnd, NULL, d->hInstance, NULL); + if (d->render_hwnd) + ImmAssociateContextEx(d->render_hwnd, NULL, 0); } /* Separate top-level log window */