Module: wine Branch: master Commit: 836bd1fdaedb62d066271912bd4b37c7f82b33a7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=836bd1fdaedb62d066271912bd...
Author: Aric Stewart aric@codeweavers.com Date: Tue Oct 28 13:03:33 2014 -0500
imm32: Handle keyboard changes when processing input.
---
dlls/imm32/imm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c index 33a0d6da..1418fc8 100644 --- a/dlls/imm32/imm.c +++ b/dlls/imm32/imm.c @@ -2882,6 +2882,22 @@ BOOL WINAPI ImmProcessKey(HWND hwnd, HKL hKL, UINT vKey, LPARAM lKeyData, DWORD else return FALSE;
+ /* Make sure we are inputting to the correct keyboard */ + if (data->immKbd->hkl != hKL) + { + ImmHkl *new_hkl = IMM_GetImmHkl(hKL); + if (new_hkl) + { + data->immKbd->pImeSelect(imc, FALSE); + data->immKbd->uSelected--; + data->immKbd = new_hkl; + data->immKbd->pImeSelect(imc, TRUE); + data->immKbd->uSelected++; + } + else + return FALSE; + } + if (!data->immKbd->hIME || !data->immKbd->pImeProcessKey) return FALSE;