Win32: Fix key name code changing global key state

This prevents glfwInit from potentially clobbering the dead key state
for other applications.

Closes #2018
This commit is contained in:
Camilla Löwy
2022-01-20 19:21:48 +01:00
committed by Camilla Löwy
parent 789d2924c0
commit ad01c1b614
3 changed files with 10 additions and 2 deletions
+7 -2
View File
@@ -458,6 +458,11 @@ void _glfwUpdateKeyNamesWin32(void)
{
int key;
BYTE state[256] = {0};
UINT flags = 0;
// Avoid modifying the global key state if supported
if (_glfwIsWindows10AnniversaryUpdateOrGreaterWin32())
flags = (1 << 2);
memset(_glfw.win32.keynames, 0, sizeof(_glfw.win32.keynames));
@@ -487,13 +492,13 @@ void _glfwUpdateKeyNamesWin32(void)
length = ToUnicode(vk, scancode, state,
chars, sizeof(chars) / sizeof(WCHAR),
0);
flags);
if (length == -1)
{
length = ToUnicode(vk, scancode, state,
chars, sizeof(chars) / sizeof(WCHAR),
0);
flags);
}
if (length < 1)