From 6c3bf5c27ebdf0ffed6dc8160a63df1ec968daaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Higor=20Eur=C3=ADpedes?= Date: Fri, 15 May 2015 09:09:08 -0300 Subject: [PATCH] (x11) Set RETROKMOD_NUMLOCK on keypad-triggered key events --- input/drivers_keyboard/keyboard_event_x11.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/input/drivers_keyboard/keyboard_event_x11.c b/input/drivers_keyboard/keyboard_event_x11.c index 41c99a12db..fd89d4af44 100644 --- a/input/drivers_keyboard/keyboard_event_x11.c +++ b/input/drivers_keyboard/keyboard_event_x11.c @@ -85,14 +85,13 @@ void x11_handle_key_event(XEvent *event, XIC ic, bool filter) char keybuf[32] = {0}; uint32_t chars[32] = {0}; - bool down = event->type == KeyPress; - unsigned key = input_keymaps_translate_keysym_to_rk(XLookupKeysym(&event->xkey, 0)); - int num = 0; + bool down = event->type == KeyPress; + unsigned key = input_keymaps_translate_keysym_to_rk(XLookupKeysym(&event->xkey, 0)); + int num = 0; + KeySym keysym = 0; if (down && !filter) { - KeySym keysym = 0; - #ifdef X_HAVE_UTF8_STRING Status status = 0; @@ -124,6 +123,8 @@ void x11_handle_key_event(XEvent *event, XIC ic, bool filter) mod |= RETROKMOD_ALT; if (state & Mod4Mask) mod |= RETROKMOD_META; + if (IsKeypadKey(keysym)) + mod |= RETROKMOD_NUMLOCK; input_keyboard_event(down, key, chars[0], mod, RETRO_DEVICE_KEYBOARD);