mirror of
https://github.com/reactos/reactos.git
synced 2025-07-23 13:13:40 +00:00
[IMM32] Add ImmGetAppCompatFlags and epilogue of ImmProcessKey
CORE-11700
This commit is contained in:
parent
9a3a11d26b
commit
deb4f4e4e2
1 changed files with 23 additions and 2 deletions
|
@ -682,6 +682,20 @@ UINT WINAPI ImmGetVirtualKey(HWND hWnd)
|
|||
return ret;
|
||||
}
|
||||
|
||||
DWORD WINAPI ImmGetAppCompatFlags(HIMC hIMC)
|
||||
{
|
||||
PCLIENTIMC pClientIMC;
|
||||
DWORD dwFlags;
|
||||
|
||||
pClientIMC = ImmLockClientImc(hIMC);
|
||||
if (pClientIMC == NULL)
|
||||
return 0;
|
||||
|
||||
dwFlags = pClientIMC->dwCompatFlags;
|
||||
ImmUnlockClientImc(pClientIMC);
|
||||
return dwFlags;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* ImmProcessKey(IMM32.@)
|
||||
* ( Undocumented, called from user32.dll )
|
||||
|
@ -754,9 +768,16 @@ ImmProcessKey(HWND hWnd, HKL hKL, UINT vKey, LPARAM lParam, DWORD dwHotKeyID)
|
|||
}
|
||||
}
|
||||
|
||||
if (ret & IPHK_PROCESSBYIME)
|
||||
if ((ret & IPHK_PROCESSBYIME) && (ImmGetAppCompatFlags(hIMC) & 0x10000))
|
||||
{
|
||||
FIXME("TODO: We have to do something here.\n");
|
||||
LANGID wLangID = LANGIDFROMLCID(GetSystemDefaultLCID());
|
||||
if (PRIMARYLANGID(wLangID) != LANG_KOREAN ||
|
||||
(vKey != VK_PROCESSKEY && !(ret & IPHK_HOTKEY)))
|
||||
{
|
||||
ImmTranslateMessage(hWnd, WM_KEYDOWN, VK_PROCESSKEY, lParam);
|
||||
ret &= ~IPHK_PROCESSBYIME;
|
||||
ret |= IPHK_SKIPTHISKEY;
|
||||
}
|
||||
}
|
||||
|
||||
ImmReleaseContext(hWnd, hIMC);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue