Skip to content

Commit 39471f8

Browse files
authored
Reverted keyboardInput to use scancodes again, but not toggle betweek make and brake codes (#107)
1 parent 2eda180 commit 39471f8

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Diff for: src/win32/keypress.c

+12-12
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44

55
#include <ctype.h> /* For isupper() */
66

7-
/* Convenience wrappers around ugly APIs. */
8-
#define WIN32_KEY_EVENT_WAIT(key, flags) \
9-
(win32KeyEvent(key, flags), Sleep(DEADBEEF_RANDRANGE(0, 63)))
10-
117
void win32KeyEvent(int key, MMKeyFlags flags)
128
{
9+
UINT scan = MapVirtualKey(key & 0xff, MAPVK_VK_TO_VSC);
10+
1311
/* Set the scan code for extended keys */
1412
switch (key)
1513
{
@@ -53,9 +51,11 @@ void win32KeyEvent(int key, MMKeyFlags flags)
5351

5452
INPUT keyboardInput;
5553
keyboardInput.type = INPUT_KEYBOARD;
54+
keyboardInput.ki.wScan = (WORD)scan;
5655
keyboardInput.ki.wVk = (WORD)key;
57-
keyboardInput.ki.dwFlags = flags;
58-
SendInput(1, &keyboardInput, sizeof(INPUT));
56+
keyboardInput.ki.dwFlags = KEYEVENTF_SCANCODE | flags;
57+
keyboardInput.ki.time = 0;
58+
SendInput(1, &keyboardInput, sizeof(keyboardInput));
5959
}
6060

6161
void toggleKeyCode(MMKeyCode code, const bool down, MMKeyFlags flags)
@@ -66,19 +66,19 @@ void toggleKeyCode(MMKeyCode code, const bool down, MMKeyFlags flags)
6666
{
6767
/* Parse modifier keys. */
6868
if (flags & MOD_META)
69-
WIN32_KEY_EVENT_WAIT(K_META, dwFlags);
69+
win32KeyEvent(K_META, dwFlags);
7070
if (flags & MOD_ALT)
71-
WIN32_KEY_EVENT_WAIT(K_ALT, dwFlags);
71+
win32KeyEvent(K_ALT, dwFlags);
7272
if (flags & MOD_CONTROL)
73-
WIN32_KEY_EVENT_WAIT(K_CONTROL, dwFlags);
73+
win32KeyEvent(K_CONTROL, dwFlags);
7474
if (flags & MOD_SHIFT)
75-
WIN32_KEY_EVENT_WAIT(K_SHIFT, dwFlags);
75+
win32KeyEvent(K_SHIFT, dwFlags);
7676

77-
WIN32_KEY_EVENT_WAIT(code, dwFlags);
77+
win32KeyEvent(code, dwFlags);
7878
}
7979
else
8080
{
81-
WIN32_KEY_EVENT_WAIT(code, dwFlags);
81+
win32KeyEvent(code, dwFlags);
8282

8383
/* Parse modifier keys. */
8484
if (flags & MOD_META)

0 commit comments

Comments
 (0)