summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dwm.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/dwm.c b/dwm.c
index d9776f6..55d825f 100644
--- a/dwm.c
+++ b/dwm.c
@@ -2054,16 +2054,18 @@ keypress(XEvent *e)
#endif // KEYMODES_PATCH
{
unsigned int i;
- KeySym keysym;
+ int keysyms_return;
+ KeySym* keysym;
XKeyEvent *ev;
ev = &e->xkey;
- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
+ keysym = XGetKeyboardMapping(dpy, (KeyCode)ev->keycode, 1, &keysyms_return);
for (i = 0; i < LENGTH(keys); i++)
- if (keysym == keys[i].keysym
- && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
- && keys[i].func)
+ if (*keysym == keys[i].keysym
+ && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
+ && keys[i].func)
keys[i].func(&(keys[i].arg));
+ XFree(keysym);
}
void