author | Anselm R. Garbe <garbeam@wmii.de> |
Tue, 11 Jul 2006 13:21:57 +0200 | |
changeset 11 | ea9c08ec4b48 |
parent 9 | d567f430a81d |
child 14 | 5c078b66347b |
permissions | -rw-r--r-- |
8 | 1 |
/* |
2 |
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> |
|
3 |
* See LICENSE file for license details. |
|
4 |
*/ |
|
5 |
||
6 |
#include "wm.h" |
|
7 |
||
8 |
#include <X11/keysym.h> |
|
9 |
||
10 |
static Key key[] = { |
|
11 |
KEYS |
|
12 |
}; |
|
13 |
||
14 |
void |
|
15 |
update_keys() |
|
16 |
{ |
|
17 |
unsigned int i, len; |
|
18 |
KeyCode code; |
|
19 |
||
20 |
len = sizeof(key) / sizeof(key[0]); |
|
21 |
for(i = 0; i < len; i++) { |
|
22 |
code = XKeysymToKeycode(dpy, key[i].keysym); |
|
23 |
XUngrabKey(dpy, code, key[i].mod, root); |
|
24 |
XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync); |
|
25 |
} |
|
26 |
} |
|
9
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
27 |
|
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
28 |
void |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
29 |
keypress(XEvent *e) |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
30 |
{ |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
31 |
XKeyEvent *ev = &e->xkey; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
32 |
unsigned int i, len; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
33 |
KeySym keysym; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
34 |
|
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
35 |
keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
36 |
len = sizeof(key) / sizeof(key[0]); |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
37 |
for(i = 0; i < len; i++) |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
38 |
if((keysym == key[i].keysym) && (key[i].mod == ev->state)) { |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
39 |
if(key[i].func) |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
40 |
key[i].func(key[i].arg); |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
41 |
return; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
42 |
} |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
43 |
} |