mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-12-12 11:12:29 +00:00
feat(os): improve keyboard key handling on Windows
This commit is contained in:
parent
78f1d095d6
commit
e633127a0f
1 changed files with 14 additions and 3 deletions
|
|
@ -671,11 +671,22 @@ int32_t OsWindowProc(void* window, uint32_t message, uintptr_t wparam, intptr_t
|
|||
auto keyDown = message == WM_KEYDOWN || message == WM_SYSKEYDOWN;
|
||||
|
||||
if (wparam == VK_SHIFT) {
|
||||
// TODO
|
||||
if (!keyDown) {
|
||||
OsQueuePut(OS_INPUT_KEY_UP, 0, 0, 0, 0);
|
||||
OsQueuePut(OS_INPUT_KEY_UP, 1, 0, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint32_t scanCode = 0;
|
||||
if (scanCode == 256) {
|
||||
scanCode = MapVirtualKeyA(VK_RSHIFT, MAPVK_VK_TO_VSC);
|
||||
}
|
||||
|
||||
wparam = ((lparam >> 24) & 0xFF) != scanCode ? VK_LSHIFT : VK_RSHIFT;
|
||||
} else if (wparam == VK_CONTROL) {
|
||||
// TODO
|
||||
wparam = ((lparam >> 24) & 0x01) | 0xA2;
|
||||
} else if (wparam == VK_MENU) {
|
||||
// TODO
|
||||
wparam = ((lparam >> 24) & 0x01) | 0xA4;
|
||||
}
|
||||
|
||||
KEY key;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue