mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-11 05:52:19 +02:00
Fix issue where key list would change based on keyboard state (#2221)
This commit is contained in:
@@ -62,8 +62,9 @@ void LayoutMap::LayoutMapImpl::UpdateLayout()
|
|||||||
unknownKeys.clear();
|
unknownKeys.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char* btKeys = new unsigned char[256]{ 0 };
|
BYTE* btKeys = new BYTE[256]{ 0 };
|
||||||
GetKeyboardState(btKeys);
|
// Only set the Caps Lock key to on for the key names in uppercase
|
||||||
|
btKeys[VK_CAPITAL] = 1;
|
||||||
|
|
||||||
// Iterate over all the virtual key codes. virtual key 0 is not used
|
// Iterate over all the virtual key codes. virtual key 0 is not used
|
||||||
for (int i = 1; i < 256; i++)
|
for (int i = 1; i < 256; i++)
|
||||||
@@ -72,7 +73,7 @@ void LayoutMap::LayoutMapImpl::UpdateLayout()
|
|||||||
UINT scanCode = MapVirtualKeyExW(i, MAPVK_VK_TO_VSC, layout);
|
UINT scanCode = MapVirtualKeyExW(i, MAPVK_VK_TO_VSC, layout);
|
||||||
// Get the unicode representation from the virtual key code and scan code pair to
|
// Get the unicode representation from the virtual key code and scan code pair to
|
||||||
wchar_t szBuffer[3] = { 0 };
|
wchar_t szBuffer[3] = { 0 };
|
||||||
int result = ToUnicodeEx(i, scanCode, (BYTE*)btKeys, szBuffer, 3, 0, layout);
|
int result = ToUnicodeEx(i, scanCode, btKeys, szBuffer, 3, 0, layout);
|
||||||
// If a representation is returned
|
// If a representation is returned
|
||||||
if (result > 0)
|
if (result > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user