dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit 344f35f9f55b615e5d7c46f863578f1cc974cc54
parent 87adcd263b1fc75f7eb3172dac55ca641fd7a96a
Author: anselm@garbe.us <unknown>
Date:   Sat, 17 Nov 2012 19:10:39 +0100

applied Neil Klopfstein's patch, slightly modified
Diffstat:
Mdwm.c | 10++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/dwm.c b/dwm.c
@@ -282,7 +282,7 @@ static void (*handler[LASTEvent]) (XEvent *) = {
     [UnmapNotify] = unmapnotify
 };
 static Atom wmatom[WMLast], netatom[NetLast];
-static Bool running = True;
+static Bool running = True, usexkb;
 static Cursor cursor[CurLast];
 static Display *dpy;
 static DC dc;
@@ -1069,7 +1069,10 @@ keypress(XEvent *e) {
     XKeyEvent *ev;
 
     ev = &e->xkey;
-    keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0);
+    if(usexkb) {
+        keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0);
+    else
+        keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
     for(i = 0; i < LENGTH(keys); i++)
         if(keysym == keys[i].keysym
         && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
@@ -1579,6 +1582,7 @@ setmfact(const Arg *arg) {
 void
 setup(void) {
     XSetWindowAttributes wa;
+    int dummy = 0, xkbmajor = XkbMajorVersion, xkbminor = XkbMinorVersion;
 
     /* clean up any zombies immediately */
     sigchld(0);
@@ -1631,6 +1635,8 @@ setup(void) {
                     |EnterWindowMask|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask;
     XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
     XSelectInput(dpy, root, wa.event_mask);
+    /* init xkb */
+    usexkb = XkbQueryExtension(dpy, &dummy, &dummy, &dummy, &xkb_major, &xkb_minor);
     grabkeys();
 }