diff options
| -rw-r--r-- | dwm.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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 |
