aboutsummaryrefslogtreecommitdiff
path: root/monsterwm.c
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2012-01-12 22:35:14 +0200
committerIvan Kanakarakis <ivan.kanak@gmail.com>2012-01-12 22:35:14 +0200
commit998e8e71ba8a69ac3c47db47521aa769a091cb34 (patch)
treef91bdbcdb0e97d61d15e26e75696342f48d2a260 /monsterwm.c
parent80a6c7fbec7b310f432f16589e8aff7b963e5371 (diff)
rework grabkeys() function
Diffstat (limited to 'monsterwm.c')
-rw-r--r--monsterwm.c13
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) {