From 4e6cb53920d6f2ee57db2a7593dbdc27bb1e1941 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 17 Nov 2015 07:50:36 +0100 Subject: [PATCH] (keyboard_event_win32.cpp) More simplifications --- .../drivers_keyboard/keyboard_event_win32.cpp | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/input/drivers_keyboard/keyboard_event_win32.cpp b/input/drivers_keyboard/keyboard_event_win32.cpp index cd0353ea7b..cf12703e4d 100644 --- a/input/drivers_keyboard/keyboard_event_win32.cpp +++ b/input/drivers_keyboard/keyboard_event_win32.cpp @@ -25,7 +25,8 @@ LRESULT win32_handle_keyboard_event(HWND hwnd, UINT message, { unsigned scancode = (lparam >> 16) & 0xff; unsigned keycode = input_keymaps_translate_keysym_to_rk(scancode); - uint16_t mod = 0; + uint16_t mod = 0; + bool keydown = true; if (GetKeyState(VK_SHIFT) & 0x80) mod |= RETROKMOD_SHIFT; @@ -46,7 +47,7 @@ LRESULT win32_handle_keyboard_event(HWND hwnd, UINT message, * WM_CHAR and WM_KEYDOWN properly. */ case WM_CHAR: - input_keyboard_event(true, RETROK_UNKNOWN, wparam, mod, + input_keyboard_event(keydown, RETROK_UNKNOWN, wparam, mod, RETRO_DEVICE_KEYBOARD); return TRUE; @@ -54,32 +55,29 @@ LRESULT win32_handle_keyboard_event(HWND hwnd, UINT message, case WM_SYSKEYUP: case WM_KEYDOWN: case WM_SYSKEYDOWN: - { - bool keydown = false; - switch (message) - { - case WM_KEYDOWN: - case WM_SYSKEYDOWN: - keydown = true; - break; - } - /* DirectInput uses scancodes directly. */ - input_keyboard_event(keydown, keycode, 0, mod, - RETRO_DEVICE_KEYBOARD); + /* Key released? */ + if (message == WM_KEYUP || message == WM_SYSKEYUP) + keydown = false; + /* DirectInput uses scancodes directly. */ + input_keyboard_event(keydown, keycode, 0, mod, + RETRO_DEVICE_KEYBOARD); + + if (message == WM_SYSKEYDOWN) + { switch (wparam) { case VK_F10: case VK_MENU: case VK_RSHIFT: - if (message == WM_SYSKEYDOWN) - return 0; + return 0; + default: break; } - - if (message != WM_SYSKEYDOWN) - return 0; } + else + return 0; + break; }