win32u: Keep the current user locale when enumerating layouts.
The low word of the enumerated HKL is the desired user locale, the high word is either the keyboard layout LANGID, or the keyboard "Layout Id" for additional layouts with the same LANGID.
This commit is contained in:
parent
ab80ee17fa
commit
d12dda395f
1 changed files with 2 additions and 2 deletions
|
@ -1273,10 +1273,10 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts )
|
|||
tmp = wcstoul( key_info->Name, NULL, 16 );
|
||||
if (query_reg_ascii_value( subkey, "Layout Id", value_info, sizeof(buffer) ) &&
|
||||
value_info->Type == REG_SZ)
|
||||
tmp = MAKELONG( LOWORD( tmp ),
|
||||
0xf000 | (wcstoul( (const WCHAR *)value_info->Data, NULL, 16 ) & 0xfff) );
|
||||
tmp = 0xf000 | (wcstoul( (const WCHAR *)value_info->Data, NULL, 16 ) & 0xfff);
|
||||
NtClose( subkey );
|
||||
|
||||
tmp = MAKELONG( LOWORD( layout ), LOWORD( tmp ) );
|
||||
if (layout == UlongToHandle( tmp )) continue;
|
||||
|
||||
count++;
|
||||
|
|
Loading…
Add table
Reference in a new issue