diff options
| author | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2012-01-12 22:35:14 +0200 |
|---|---|---|
| committer | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2012-01-12 22:35:14 +0200 |
| commit | 998e8e71ba8a69ac3c47db47521aa769a091cb34 (patch) | |
| tree | f91bdbcdb0e97d61d15e26e75696342f48d2a260 | |
| parent | 80a6c7fbec7b310f432f16589e8aff7b963e5371 (diff) | |
rework grabkeys() function
| -rw-r--r-- | monsterwm.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/monsterwm.c b/monsterwm.c index f7f510a..26f72d3 100644 --- a/monsterwm.c +++ b/monsterwm.c @@ -295,13 +295,12 @@ unsigned long getcolor(const char* color) { void grabkeys(void) { KeyCode code; XUngrabKey(dis, AnyKey, AnyModifier, root); - for (unsigned int i=0; i<LENGTH(keys); i++) { - code = XKeysymToKeycode(dis, keys[i].keysym); - XGrabKey(dis, code, keys[i].mod, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dis, code, keys[i].mod | LockMask, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dis, code, keys[i].mod | numlockmask, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dis, code, keys[i].mod | numlockmask | LockMask, root, True, GrabModeAsync, GrabModeAsync); - } + + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; + for (unsigned int k=0; k<LENGTH(keys); k++) + if ((code = XKeysymToKeycode(dis, keys[k].keysym))) + for (unsigned int m=0; m<LENGTH(modifiers); m++) + XGrabKey(dis, code, keys[k].mod|modifiers[m], root, True, GrabModeAsync, GrabModeAsync); } void keypress(XEvent *e) { |
