event.c
changeset 278 c1187ddcd7f7
parent 276 9a0a351dd910
child 279 2cedfbefd025
equal deleted inserted replaced
277:1e7fa455e3b4 278:c1187ddcd7f7
     2  * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
     2  * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
     3  * See LICENSE file for license details.
     3  * See LICENSE file for license details.
     4  */
     4  */
     5 #include "dwm.h"
     5 #include "dwm.h"
     6 #include <stdlib.h>
     6 #include <stdlib.h>
     7 #include <unistd.h>
       
     8 #include <X11/keysym.h>
     7 #include <X11/keysym.h>
     9 #include <X11/Xatom.h>
     8 #include <X11/Xatom.h>
    10 
     9 
    11 /* static */
    10 /* static */
    12 
    11 
   359 {
   358 {
   360 	static unsigned int len = sizeof(key) / sizeof(key[0]);
   359 	static unsigned int len = sizeof(key) / sizeof(key[0]);
   361 	unsigned int i;
   360 	unsigned int i;
   362 	KeyCode code;
   361 	KeyCode code;
   363 
   362 
   364 	while(XGrabKeyboard(dpy, root, True, GrabModeAsync,
       
   365 			 GrabModeAsync, CurrentTime) != GrabSuccess)
       
   366 		usleep(1000);
       
   367 	XUngrabKeyboard(dpy, CurrentTime);
       
   368 
       
   369 	for(i = 0; i < len; i++) {
   363 	for(i = 0; i < len; i++) {
   370 		code = XKeysymToKeycode(dpy, key[i].keysym);
   364 		code = XKeysymToKeycode(dpy, key[i].keysym);
   371 		XGrabKey(dpy, code, key[i].mod, root, True,
   365 		XGrabKey(dpy, code, key[i].mod, root, True,
   372 				GrabModeAsync, GrabModeAsync);
   366 				GrabModeAsync, GrabModeAsync);
   373 		XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
   367 		XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
   374 				GrabModeAsync, GrabModeAsync);
   368 				GrabModeAsync, GrabModeAsync);
   375 		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True,
   369 		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True,
   376 				GrabModeAsync, GrabModeAsync);
   370 				GrabModeAsync, GrabModeAsync);
   377 		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True,
   371 		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True,
   378 				GrabModeAsync, GrabModeAsync);
   372 				GrabModeAsync, GrabModeAsync);
   379 	}
   373 		XSync(dpy, False);
   380 }
   374 	}
       
   375 }