Merge pull request #74474 from bruvzg/win_ime_release_mod

[Windows] Update modifier key status during IME input.
This commit is contained in:
Rémi Verschelde 2023-03-06 10:52:27 +01:00
commit 90b516e803
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -3404,16 +3404,8 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
} break;
case WM_SYSKEYUP:
case WM_KEYUP:
if (windows[window_id].ime_suppress_next_keyup) {
windows[window_id].ime_suppress_next_keyup = false;
break;
}
[[fallthrough]];
case WM_SYSKEYDOWN:
case WM_KEYDOWN: {
if (windows[window_id].ime_in_progress) {
break;
}
if (wParam == VK_SHIFT) {
shift_mem = (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN);
}
@ -3426,6 +3418,17 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
gr_mem = alt_mem;
}
}
if (wParam == VK_LWIN || wParam == VK_RWIN) {
meta_mem = (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN);
}
if (windows[window_id].ime_suppress_next_keyup && (uMsg == WM_KEYUP || uMsg == WM_SYSKEYUP)) {
windows[window_id].ime_suppress_next_keyup = false;
break;
}
if (windows[window_id].ime_in_progress) {
break;
}
if (mouse_mode == MOUSE_MODE_CAPTURED) {
// When SetCapture is used, ALT+F4 hotkey is ignored by Windows, so handle it ourselves