From c2e87523957b736a5db055bbb208ed64a7436a7d Mon Sep 17 00:00:00 2001 From: Tony Jansson Date: Wed, 14 Oct 2020 04:27:10 +0300 Subject: [PATCH] (DINPUT+WINRAW) Keyboard fixes --- gfx/common/win32_common.c | 12 ++++++------ input/drivers/winraw_input.c | 1 + input/input_keymaps.c | 12 +++++++++--- retroarch.c | 4 ++-- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/gfx/common/win32_common.c b/gfx/common/win32_common.c index 3874ed9913..3209e5be6b 100644 --- a/gfx/common/win32_common.c +++ b/gfx/common/win32_common.c @@ -870,9 +870,9 @@ static LRESULT CALLBACK wnd_proc_common( if (GetKeyState(VK_SHIFT) & 0x80) mod |= RETROKMOD_SHIFT; if (GetKeyState(VK_CONTROL) & 0x80) - mod |= RETROKMOD_CTRL; + mod |= RETROKMOD_CTRL; if (GetKeyState(VK_MENU) & 0x80) - mod |= RETROKMOD_ALT; + mod |= RETROKMOD_ALT; if (GetKeyState(VK_CAPITAL) & 0x81) mod |= RETROKMOD_CAPSLOCK; if (GetKeyState(VK_SCROLL) & 0x81) @@ -948,9 +948,9 @@ static LRESULT CALLBACK wnd_proc_common_internal(HWND hwnd, if (GetKeyState(VK_SHIFT) & 0x80) mod |= RETROKMOD_SHIFT; if (GetKeyState(VK_CONTROL) & 0x80) - mod |= RETROKMOD_CTRL; + mod |= RETROKMOD_CTRL; if (GetKeyState(VK_MENU) & 0x80) - mod |= RETROKMOD_ALT; + mod |= RETROKMOD_ALT; if (GetKeyState(VK_CAPITAL) & 0x81) mod |= RETROKMOD_CAPSLOCK; if (GetKeyState(VK_SCROLL) & 0x81) @@ -1039,9 +1039,9 @@ static LRESULT CALLBACK wnd_proc_common_dinput_internal(HWND hwnd, if (GetKeyState(VK_SHIFT) & 0x80) mod |= RETROKMOD_SHIFT; if (GetKeyState(VK_CONTROL) & 0x80) - mod |= RETROKMOD_CTRL; + mod |= RETROKMOD_CTRL; if (GetKeyState(VK_MENU) & 0x80) - mod |= RETROKMOD_ALT; + mod |= RETROKMOD_ALT; if (GetKeyState(VK_CAPITAL) & 0x81) mod |= RETROKMOD_CAPSLOCK; if (GetKeyState(VK_SCROLL) & 0x81) diff --git a/input/drivers/winraw_input.c b/input/drivers/winraw_input.c index cef1ccc231..ca5acd2ad9 100644 --- a/input/drivers/winraw_input.c +++ b/input/drivers/winraw_input.c @@ -105,6 +105,7 @@ static BOOL winraw_set_keyboard_input(HWND window) rid.hwndTarget = window; rid.usUsagePage = 0x01; /* generic desktop */ rid.usUsage = 0x06; /* keyboard */ + rid.dwFlags |= RIDEV_NOHOTKEYS; /* disable win keys while focused */ return RegisterRawInputDevices(&rid, 1, sizeof(RAWINPUTDEVICE)); } diff --git a/input/input_keymaps.c b/input/input_keymaps.c index 4bf89ee5be..35a4c2576b 100644 --- a/input/input_keymaps.c +++ b/input/input_keymaps.c @@ -650,12 +650,17 @@ const struct rarch_key_map rarch_key_map_dinput[] = { { DIK_DELETE, RETROK_DELETE }, { DIK_RSHIFT, RETROK_RSHIFT }, { DIK_LSHIFT, RETROK_LSHIFT }, + { DIK_RCONTROL, RETROK_RCTRL }, { DIK_LCONTROL, RETROK_LCTRL }, + { DIK_RMENU, RETROK_RALT }, + { DIK_LALT, RETROK_LALT }, + { DIK_LWIN, RETROK_LSUPER }, + { DIK_RWIN, RETROK_RSUPER }, + { DIK_APPS, RETROK_MENU }, { DIK_END, RETROK_END }, { DIK_HOME, RETROK_HOME }, { DIK_NEXT, RETROK_PAGEDOWN }, { DIK_PRIOR, RETROK_PAGEUP }, - { DIK_LALT, RETROK_LALT }, { DIK_SPACE, RETROK_SPACE }, { DIK_ESCAPE, RETROK_ESCAPE }, { DIK_BACKSPACE, RETROK_BACKSPACE }, @@ -698,6 +703,9 @@ const struct rarch_key_map rarch_key_map_dinput[] = { { DIK_F10, RETROK_F10 }, { DIK_F11, RETROK_F11 }, { DIK_F12, RETROK_F12 }, + { DIK_F13, RETROK_F13 }, + { DIK_F14, RETROK_F14 }, + { DIK_F15, RETROK_F15 }, { DIK_A, RETROK_a }, { DIK_B, RETROK_b }, { DIK_C, RETROK_c }, @@ -734,8 +742,6 @@ const struct rarch_key_map rarch_key_map_dinput[] = { { DIK_BACKSLASH, RETROK_BACKSLASH }, { DIK_RBRACKET, RETROK_RIGHTBRACKET }, { DIK_DECIMAL, RETROK_KP_PERIOD }, - { DIK_RCONTROL, RETROK_RCTRL }, - { DIK_RMENU, RETROK_RALT }, { DIK_PERIOD, RETROK_PERIOD }, { DIK_SCROLL, RETROK_SCROLLOCK }, { DIK_CAPSLOCK, RETROK_CAPSLOCK }, diff --git a/retroarch.c b/retroarch.c index 6ff1fc555e..f6c08429e9 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3340,8 +3340,8 @@ struct key_desc key_descriptors[RARCH_MAX_KEYS] = {RETROK_LALT, "Left Alt"}, {RETROK_RMETA, "Right Meta"}, {RETROK_LMETA, "Left Meta"}, - {RETROK_LSUPER, "Right Super"}, - {RETROK_RSUPER, "Left Super"}, + {RETROK_RSUPER, "Right Super"}, + {RETROK_LSUPER, "Left Super"}, {RETROK_MODE, "Mode"}, {RETROK_COMPOSE, "Compose"},