From fe8f80610e18179ed028a119538724e04ac64e64 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Tue, 16 Aug 2022 08:02:49 +0900 Subject: [PATCH] [NTUSER] Send WM_IME_SYSTEM:IMS_LOADTHREADLAYOUT at IntCreateWindow (#4606) - Send WM_IME_SYSTEM:IMS_LOADTHREADLAYOUT message at IntCreateWindow function. CORE-11700 --- win32ss/user/ntuser/window.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/win32ss/user/ntuser/window.c b/win32ss/user/ntuser/window.c index b6a2c28bab2..a2b9e24b6d8 100644 --- a/win32ss/user/ntuser/window.c +++ b/win32ss/user/ntuser/window.c @@ -2053,17 +2053,22 @@ PWND FASTCALL IntCreateWindow(CREATESTRUCTW* Cs, PWND pwndDefaultIme = co_IntCreateDefaultImeWindow(pWnd, pWnd->hModule); UserAssignmentLock((PVOID*)&(pti->spwndDefaultIme), pwndDefaultIme); - if (pwndDefaultIme && (pti->pClientInfo->CI_flags & CI_IMMACTIVATE)) + if (pwndDefaultIme) { + HWND hImeWnd; USER_REFERENCE_ENTRY Ref; - HKL hKL; - UserRefObjectCo(pwndDefaultIme, &Ref); - hKL = pti->KeyboardLayout->hkl; - co_IntSendMessage(UserHMGetHandle(pwndDefaultIme), WM_IME_SYSTEM, - IMS_ACTIVATELAYOUT, (LPARAM)hKL); - pti->pClientInfo->CI_flags &= ~CI_IMMACTIVATE; + hImeWnd = UserHMGetHandle(pwndDefaultIme); + + co_IntSendMessage(hImeWnd, WM_IME_SYSTEM, IMS_LOADTHREADLAYOUT, 0); + + if (pti->pClientInfo->CI_flags & CI_IMMACTIVATE) + { + HKL hKL = pti->KeyboardLayout->hkl; + co_IntSendMessage(hImeWnd, WM_IME_SYSTEM, IMS_ACTIVATELAYOUT, (LPARAM)hKL); + pti->pClientInfo->CI_flags &= ~CI_IMMACTIVATE; + } UserDerefObjectCo(pwndDefaultIme); }