Merge pull request #101763 from SupSuper/patch-1

[Windows] Fix left/right Shift key regression
This commit is contained in:
Thaddeus Crews 2025-01-21 11:55:21 -06:00
commit 8cf94c8de5
No known key found for this signature in database
GPG key ID: 62181B86FE9E5D84

View file

@ -4690,7 +4690,9 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
// If multiple Shifts are held down at the same time, // If multiple Shifts are held down at the same time,
// Windows natively only sends a KEYUP for the last one to be released. // Windows natively only sends a KEYUP for the last one to be released.
if (raw->data.keyboard.Flags & RI_KEY_BREAK) { if (raw->data.keyboard.Flags & RI_KEY_BREAK) {
if (!mods.has_flag(WinKeyModifierMask::SHIFT)) { // Make sure to check the latest key state since
// we're in the middle of the message queue.
if (GetAsyncKeyState(VK_SHIFT) < 0) {
// A Shift is released, but another Shift is still held // A Shift is released, but another Shift is still held
ERR_BREAK(key_event_pos >= KEY_EVENT_BUFFER_SIZE); ERR_BREAK(key_event_pos >= KEY_EVENT_BUFFER_SIZE);