mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-09 20:57:22 +02:00
[General]Fix random dead keys being pressed (#19438)
This commit is contained in:
@@ -217,7 +217,8 @@ namespace PowerToysSettings
|
|||||||
}
|
}
|
||||||
std::array<BYTE, 256> key_states{}; // Zero-initialize
|
std::array<BYTE, 256> key_states{}; // Zero-initialize
|
||||||
std::array<wchar_t, 256> output;
|
std::array<wchar_t, 256> output;
|
||||||
auto output_bytes = ToUnicodeEx(key_code, scan_code, key_states.data(), output.data(), (int)output.size() - 1, 0, layout);
|
const UINT wFlags = 1 << 2; // If bit 2 is set, keyboard state is not changed (Windows 10, version 1607 and newer)
|
||||||
|
auto output_bytes = ToUnicodeEx(key_code, scan_code, key_states.data(), output.data(), (int)output.size() - 1, wFlags, layout);
|
||||||
if (output_bytes <= 0)
|
if (output_bytes <= 0)
|
||||||
{
|
{
|
||||||
// If ToUnicodeEx fails (e.g. for F1-F12 keys) use GetKeyNameTextW
|
// If ToUnicodeEx fails (e.g. for F1-F12 keys) use GetKeyNameTextW
|
||||||
|
|||||||
@@ -55,7 +55,8 @@ bool mapKeycodeToUnicode(const int vCode, HKL layout, const BYTE* keyState, std:
|
|||||||
// Get the scan code from the virtual key code
|
// Get the scan code from the virtual key code
|
||||||
const UINT scanCode = MapVirtualKeyExW(vCode, MAPVK_VK_TO_VSC, layout);
|
const UINT scanCode = MapVirtualKeyExW(vCode, MAPVK_VK_TO_VSC, layout);
|
||||||
// Get the unicode representation from the virtual key code and scan code pair
|
// Get the unicode representation from the virtual key code and scan code pair
|
||||||
const int result = ToUnicodeEx(vCode, scanCode, keyState, outBuffer.data(), (int)outBuffer.size(), 0, layout);
|
const UINT wFlags = 1 << 2; // If bit 2 is set, keyboard state is not changed (Windows 10, version 1607 and newer)
|
||||||
|
const int result = ToUnicodeEx(vCode, scanCode, keyState, outBuffer.data(), (int)outBuffer.size(), wFlags, layout);
|
||||||
return result != 0;
|
return result != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user