1 --- dwm-0.5~/event.c 2006-07-22 15:38:12.000000000 +0200
2 +++ dwm-0.5-new/event.c 2006-07-23 12:25:29.000000000 +0200
7 +#define NumLockMask Mod2Mask
8 +unsigned int valid_mask = 255 & ~( NumLockMask | LockMask);
16 XKeyEvent *ev = &e->xkey;
17 + ev->state &= valid_mask;
19 keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
20 for(i = 0; i < len; i++)
21 - if((keysym == key[i].keysym) && (key[i].mod == ev->state)) {
22 + if((keysym == key[i].keysym) && ((key[i].mod & valid_mask) == ev->state)) {
24 key[i].func(&key[i].arg);
27 for(i = 0; i < len; i++) {
28 code = XKeysymToKeycode(dpy, key[i].keysym);
29 XUngrabKey(dpy, code, key[i].mod, root);
32 + XUngrabKey(dpy, code, key[i].mod | NumLockMask, root);
33 + XUngrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root);
35 XGrabKey(dpy, code, key[i].mod, root, True,
36 GrabModeAsync, GrabModeAsync);
39 + XGrabKey(dpy, code, key[i].mod | NumLockMask, root, True,
40 + GrabModeAsync, GrabModeAsync);
41 + XGrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root, True,
42 + GrabModeAsync, GrabModeAsync);