mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[NTUSER] Move IME window creation code (#5009)
Move the code that creates the default IME window, from IntCreateWindow to co_UserCreateWindowEx, just before sending WM_NCCALCSIZE message. CORE-18723 CORE-18754 CORE-18773 CORE-18785 CORE-18802 CORE-18803
This commit is contained in:
parent
f156f9a137
commit
c3644fd4d3
1 changed files with 27 additions and 27 deletions
|
@ -2050,33 +2050,6 @@ PWND FASTCALL IntCreateWindow(CREATESTRUCTW* Cs,
|
|||
pWnd->strName.MaximumLength = WindowName->Length + sizeof(UNICODE_NULL);
|
||||
}
|
||||
|
||||
/* Create the IME window for pWnd */
|
||||
if (IS_IMM_MODE() && !(pti->spwndDefaultIme) && IntWantImeWindow(pWnd))
|
||||
{
|
||||
PWND pwndDefaultIme = co_IntCreateDefaultImeWindow(pWnd, pWnd->hModule);
|
||||
UserAssignmentLock((PVOID*)&(pti->spwndDefaultIme), pwndDefaultIme);
|
||||
|
||||
if (pwndDefaultIme)
|
||||
{
|
||||
HWND hImeWnd;
|
||||
USER_REFERENCE_ENTRY Ref;
|
||||
UserRefObjectCo(pwndDefaultIme, &Ref);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/* Correct the window style. */
|
||||
if ((pWnd->style & (WS_CHILD | WS_POPUP)) != WS_CHILD)
|
||||
{
|
||||
|
@ -2450,6 +2423,33 @@ co_UserCreateWindowEx(CREATESTRUCTW* Cs,
|
|||
IntLinkHwnd(Window, hwndInsertAfter);
|
||||
}
|
||||
|
||||
/* Create the IME window for pWnd */
|
||||
if (IS_IMM_MODE() && !pti->spwndDefaultIme && IntWantImeWindow(Window))
|
||||
{
|
||||
PWND pwndDefaultIme = co_IntCreateDefaultImeWindow(Window, Window->hModule);
|
||||
UserAssignmentLock((PVOID*)&pti->spwndDefaultIme, pwndDefaultIme);
|
||||
|
||||
if (pwndDefaultIme)
|
||||
{
|
||||
HWND hImeWnd;
|
||||
USER_REFERENCE_ENTRY Ref;
|
||||
UserRefObjectCo(pwndDefaultIme, &Ref);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/* Send the WM_NCCALCSIZE message */
|
||||
{
|
||||
// RECT rc;
|
||||
|
|
Loading…
Reference in a new issue