key.c
changeset 9 d567f430a81d
parent 8 7066ff2fe8bc
child 14 5c078b66347b
equal deleted inserted replaced
8:7066ff2fe8bc 9:d567f430a81d
    22 		code = XKeysymToKeycode(dpy, key[i].keysym);
    22 		code = XKeysymToKeycode(dpy, key[i].keysym);
    23 		XUngrabKey(dpy, code, key[i].mod, root);
    23 		XUngrabKey(dpy, code, key[i].mod, root);
    24 		XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync);
    24 		XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync);
    25 	}
    25 	}
    26 }
    26 }
       
    27 
       
    28 void
       
    29 keypress(XEvent *e)
       
    30 {
       
    31 	XKeyEvent *ev = &e->xkey;
       
    32 	unsigned int i, len;
       
    33 	KeySym keysym;
       
    34 
       
    35 	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
       
    36 	len = sizeof(key) / sizeof(key[0]);
       
    37 	for(i = 0; i < len; i++)
       
    38 		if((keysym == key[i].keysym) && (key[i].mod == ev->state)) {
       
    39 			if(key[i].func)
       
    40 				key[i].func(key[i].arg);
       
    41 			return;
       
    42 		}
       
    43 }