Mercurial > dwm-meillo
comparison event.c @ 589:732c58a3d92d
returning to old Key struct
author | arg@mig29 |
---|---|
date | Mon, 27 Nov 2006 17:49:58 +0100 |
parents | c2ddd15b199e |
children | d6ff27532fdd |
comparison
equal
deleted
inserted
replaced
588:1477b61ec8d4 | 589:732c58a3d92d |
---|---|
9 /* static */ | 9 /* static */ |
10 | 10 |
11 typedef struct { | 11 typedef struct { |
12 unsigned long mod; | 12 unsigned long mod; |
13 KeySym keysym; | 13 KeySym keysym; |
14 void (*func[NFUNCS])(Arg *arg); | 14 void (*func)(Arg *arg); |
15 Arg arg; | 15 Arg arg; |
16 } Key; | 16 } Key; |
17 | 17 |
18 KEYS | 18 KEYS |
19 | 19 |
243 } | 243 } |
244 | 244 |
245 static void | 245 static void |
246 keypress(XEvent *e) { | 246 keypress(XEvent *e) { |
247 static unsigned int len = sizeof key / sizeof key[0]; | 247 static unsigned int len = sizeof key / sizeof key[0]; |
248 unsigned int i, j; | 248 unsigned int i; |
249 KeySym keysym; | 249 KeySym keysym; |
250 XKeyEvent *ev = &e->xkey; | 250 XKeyEvent *ev = &e->xkey; |
251 | 251 |
252 keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); | 252 keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); |
253 for(i = 0; i < len; i++) { | 253 for(i = 0; i < len; i++) { |
254 if(keysym == key[i].keysym | 254 if(keysym == key[i].keysym |
255 && CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) | 255 && CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) |
256 { | 256 { |
257 for(j = 0; j < NFUNCS; j++) | 257 if(key[i].func) |
258 if(key[i].func[j]) | 258 key[i].func(&key[i].arg); |
259 key[i].func[j](&key[i].arg); | |
260 return; | 259 return; |
261 } | 260 } |
262 } | 261 } |
263 } | 262 } |
264 | 263 |