event.c
changeset 276 9a0a351dd910
parent 275 425cd4490c1e
child 278 c1187ddcd7f7
equal deleted inserted replaced
275:425cd4490c1e 276:9a0a351dd910
     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>
     7 #include <X11/keysym.h>
     8 #include <X11/keysym.h>
     8 #include <X11/Xatom.h>
     9 #include <X11/Xatom.h>
     9 
    10 
    10 /* static */
    11 /* static */
    11 
    12 
   358 {
   359 {
   359 	static unsigned int len = sizeof(key) / sizeof(key[0]);
   360 	static unsigned int len = sizeof(key) / sizeof(key[0]);
   360 	unsigned int i;
   361 	unsigned int i;
   361 	KeyCode code;
   362 	KeyCode code;
   362 
   363 
       
   364 	while(XGrabKeyboard(dpy, root, True, GrabModeAsync,
       
   365 			 GrabModeAsync, CurrentTime) != GrabSuccess)
       
   366 		usleep(1000);
       
   367 	XUngrabKeyboard(dpy, CurrentTime);
       
   368 
   363 	for(i = 0; i < len; i++) {
   369 	for(i = 0; i < len; i++) {
   364 		code = XKeysymToKeycode(dpy, key[i].keysym);
   370 		code = XKeysymToKeycode(dpy, key[i].keysym);
   365 		XGrabKey(dpy, code, key[i].mod, root, True,
   371 		XGrabKey(dpy, code, key[i].mod, root, True,
   366 				GrabModeAsync, GrabModeAsync);
   372 				GrabModeAsync, GrabModeAsync);
   367 		XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
   373 		XGrabKey(dpy, code, key[i].mod | LockMask, root, True,