Revert upstream commit 347519a4d8f3befb719f11eeb0121c736ce64dee,
which breaks keyboard input.

Index: gfx/common/x11_common.c
--- gfx/common/x11_common.c.orig
+++ gfx/common/x11_common.c
@@ -505,7 +505,7 @@ static enum retro_key x11_translate_keysym_to_rk(unsig
    return RETROK_UNKNOWN;
 }
 
-static void x11_handle_key_event(unsigned keycode, XEvent *event,
+static void x11_handle_key_event(XEvent *event,
       XIC ic, bool filter)
 {
    int i;
@@ -557,9 +557,7 @@ static void x11_handle_key_event(unsigned keycode, XEv
    if (keysym >= XK_A && keysym <= XK_Z)
        keysym += XK_z - XK_Z;
 
-   /* Get the real keycode, that correctly ignores international layouts
-    * as windows code does. */
-   key     = x11_translate_keysym_to_rk(keycode);
+   key   = input_keymaps_translate_keysym_to_rk(keysym);
 
    if (state & ShiftMask)
       mod |= RETROKMOD_SHIFT;
@@ -569,10 +567,10 @@ static void x11_handle_key_event(unsigned keycode, XEv
       mod |= RETROKMOD_CTRL;
    if (state & Mod1Mask)
       mod |= RETROKMOD_ALT;
-   if (state & Mod2Mask)
-      mod |= RETROKMOD_NUMLOCK;
    if (state & Mod4Mask)
       mod |= RETROKMOD_META;
+   if (IsKeypadKey(keysym))
+      mod |= RETROKMOD_NUMLOCK;
 
    input_keyboard_event(down, key, chars[0], mod, RETRO_DEVICE_KEYBOARD);
 
@@ -587,14 +585,10 @@ bool x11_alive(void *data)
    {
       XEvent event;
       bool filter = false;
-      unsigned keycode = 0;
 
       /* Can get events from older windows. Check this. */
       XNextEvent(g_x11_dpy, &event);
 
-      /* IMPORTANT - Get keycode before XFilterEvent
-         because the event is localizated after the call */
-      keycode = event.xkey.keycode;
       filter  = XFilterEvent(&event, g_x11_win);
 
       switch (event.type)
@@ -677,7 +671,7 @@ bool x11_alive(void *data)
             }
          case KeyPress:
             if (event.xkey.window == g_x11_win)
-               x11_handle_key_event(keycode, &event, g_x11_xic, filter);
+               x11_handle_key_event(&event, g_x11_xic, filter);
             break;
       }
    }
