]> Pileus Git - ~andy/sunrise/blob - x11-wm/dwm/files/dwm-0.5-numlock.patch
net-firewall/nufw: Version bump
[~andy/sunrise] / x11-wm / dwm / files / dwm-0.5-numlock.patch
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
3 @@ -64,6 +64,9 @@
4         */
5  };
6  
7 +#define NumLockMask Mod2Mask
8 +unsigned int valid_mask =  255 &  ~( NumLockMask | LockMask);
9 +
10  /* END CUSTOMIZE */
11  
12  /* static */
13 @@ -277,10 +280,11 @@
14         unsigned int i;
15         KeySym keysym;
16         XKeyEvent *ev = &e->xkey;
17 +       ev->state &= valid_mask;
18  
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)) {
23                         if(key[i].func)
24                                 key[i].func(&key[i].arg);
25                         return;
26 @@ -383,7 +387,19 @@
27         for(i = 0; i < len; i++) {
28                 code = XKeysymToKeycode(dpy, key[i].keysym);
29                 XUngrabKey(dpy, code, key[i].mod, root);
30 +               if (NumLockMask)
31 +               {
32 +                       XUngrabKey(dpy, code, key[i].mod | NumLockMask, root);
33 +                       XUngrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root);
34 +               }
35                 XGrabKey(dpy, code, key[i].mod, root, True,
36                                 GrabModeAsync, GrabModeAsync);
37 +               if (NumLockMask)
38 +               {
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);
43 +               }
44         }
45  }