[Windows] Update modifier key status during IME input.
This commit is contained in:
parent
ad9302bafc
commit
ba995c6ea1
1 changed files with 11 additions and 8 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue