comparison event.c @ 123:61490330e90a

cleaned up code
author arg@10ksloc.org
date Thu, 20 Jul 2006 12:18:06 +0200
parents eb3165734f00
children 75576e44c1d8
comparison
equal deleted inserted replaced
122:f20cea484900 123:61490330e90a
18 KeySym keysym; 18 KeySym keysym;
19 void (*func)(Arg *arg); 19 void (*func)(Arg *arg);
20 Arg arg; 20 Arg arg;
21 } Key; 21 } Key;
22 22
23 /*
24 const char *browse[] = { "firefox", NULL }; 23 const char *browse[] = { "firefox", NULL };
25 const char *gimp[] = { "gimp", NULL }; 24 const char *gimp[] = { "gimp", NULL };
26 */ 25 const char *term[] = {
27 const char *term[] = { "xterm", NULL };
28 /*
29 "urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", 26 "urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
30 "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL 27 "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
31 }; 28 };
32 coonst char *xlock[] = { "xlock", NULL }; 29 const char *xlock[] = { "xlock", NULL };
33 */
34 30
35 static Key key[] = { 31 static Key key[] = {
36 /* modifier key function arguments */ 32 /* modifier key function arguments */
37 { ControlMask, XK_0, appendtag, { .i = Tscratch } }, 33 { ControlMask, XK_0, appendtag, { .i = Tscratch } },
38 { ControlMask, XK_1, appendtag, { .i = Tdev } }, 34 { ControlMask, XK_1, appendtag, { .i = Tdev } },
39 { ControlMask, XK_2, appendtag, { .i = Twww } }, 35 { ControlMask, XK_2, appendtag, { .i = Twww } },
40 { ControlMask, XK_3, appendtag, { .i = Twork } }, 36 { ControlMask, XK_3, appendtag, { .i = Twork } },
41 { MODKEY, XK_0, view, { .i = Tscratch } }, 37 { MODKEY, XK_0, view, { .i = Tscratch } },
42 { MODKEY, XK_1, view, { .i = Tdev } }, 38 { MODKEY, XK_1, view, { .i = Tdev } },
43 { MODKEY, XK_2, view, { .i = Twww } }, 39 { MODKEY, XK_2, view, { .i = Twww } },
44 { MODKEY, XK_3, view, { .i = Twork } }, 40 { MODKEY, XK_3, view, { .i = Twork } },
45 { MODKEY, XK_j, focusnext, { 0 } }, 41 { MODKEY, XK_j, focusnext, { 0 } },
46 { MODKEY, XK_k, focusprev, { 0 } }, 42 { MODKEY, XK_k, focusprev, { 0 } },
47 { MODKEY, XK_m, maximize, { 0 } }, 43 { MODKEY, XK_m, maximize, { 0 } },
48 { MODKEY, XK_space, dotile, { 0 } }, 44 { MODKEY, XK_space, dotile, { 0 } },
49 { MODKEY, XK_Return, zoom, { 0 } }, 45 { MODKEY, XK_Return, zoom, { 0 } },
50 { ControlMask|ShiftMask,XK_0, heretag, { .i = Tscratch } }, 46 { ControlMask|ShiftMask,XK_0, heretag, { .i = Tscratch } },
51 { ControlMask|ShiftMask,XK_1, heretag, { .i = Tdev } }, 47 { ControlMask|ShiftMask,XK_1, heretag, { .i = Tdev } },
52 { ControlMask|ShiftMask,XK_2, heretag, { .i = Twww } }, 48 { ControlMask|ShiftMask,XK_2, heretag, { .i = Twww } },
53 { ControlMask|ShiftMask,XK_3, heretag, { .i = Twork } }, 49 { ControlMask|ShiftMask,XK_3, heretag, { .i = Twork } },
54 { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tscratch } }, 50 { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tscratch } },
55 { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, 51 { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } },
56 { MODKEY|ShiftMask, XK_2, replacetag, { .i = Twww } }, 52 { MODKEY|ShiftMask, XK_2, replacetag, { .i = Twww } },
57 { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, 53 { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } },
58 { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, 54 { MODKEY|ShiftMask, XK_c, killclient, { 0 } },
59 /* 55 { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } },
60 { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, 56 { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } },
61 { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, 57 { MODKEY|ShiftMask, XK_q, quit, { 0 } },
62 */ 58 { MODKEY|ShiftMask, XK_space, dofloat, { 0 } },
63 { MODKEY|ShiftMask, XK_q, quit, { 0 } }, 59 { MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } },
64 { MODKEY|ShiftMask, XK_space, dofloat, { 0 } }, 60 { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } },
65 /*{ MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } },*/
66 { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } },
67 }; 61 };
68 62
69 /* static */ 63 /* static */
70 64
71 static void 65 static void
72 movemouse(Client *c) 66 movemouse(Client *c)
73 { 67 {
74 XEvent ev;
75 int x1, y1, ocx, ocy, di; 68 int x1, y1, ocx, ocy, di;
76 unsigned int dui; 69 unsigned int dui;
77 Window dummy; 70 Window dummy;
71 XEvent ev;
78 72
79 ocx = c->x; 73 ocx = c->x;
80 ocy = c->y; 74 ocy = c->y;
81 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync, 75 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
82 None, cursor[CurMove], CurrentTime) != GrabSuccess) 76 None, cursor[CurMove], CurrentTime) != GrabSuccess)
83 return; 77 return;
84 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); 78 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
85 for(;;) { 79 for(;;) {
86 XMaskEvent(dpy, MouseMask | ExposureMask, &ev); 80 XMaskEvent(dpy, MouseMask | ExposureMask, &ev);
87 switch (ev.type) { 81 switch (ev.type) {
103 } 97 }
104 98
105 static void 99 static void
106 resizemouse(Client *c) 100 resizemouse(Client *c)
107 { 101 {
108 XEvent ev;
109 int ocx, ocy; 102 int ocx, ocy;
110 Corner sticky; 103 Corner sticky;
104 XEvent ev;
111 105
112 ocx = c->x; 106 ocx = c->x;
113 ocy = c->y; 107 ocy = c->y;
114 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync, 108 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
115 None, cursor[CurResize], CurrentTime) != GrabSuccess) 109 None, cursor[CurResize], CurrentTime) != GrabSuccess)
144 static void 138 static void
145 buttonpress(XEvent *e) 139 buttonpress(XEvent *e)
146 { 140 {
147 int x; 141 int x;
148 Arg a; 142 Arg a;
143 Client *c;
149 XButtonPressedEvent *ev = &e->xbutton; 144 XButtonPressedEvent *ev = &e->xbutton;
150 Client *c;
151 145
152 if(barwin == ev->window) { 146 if(barwin == ev->window) {
153 switch(ev->button) { 147 switch(ev->button) {
154 default: 148 default:
155 x = 0; 149 x = 0;
199 } 193 }
200 194
201 static void 195 static void
202 configurerequest(XEvent *e) 196 configurerequest(XEvent *e)
203 { 197 {
198 Client *c;
204 XConfigureRequestEvent *ev = &e->xconfigurerequest; 199 XConfigureRequestEvent *ev = &e->xconfigurerequest;
205 XWindowChanges wc; 200 XWindowChanges wc;
206 Client *c;
207 201
208 ev->value_mask &= ~CWSibling; 202 ev->value_mask &= ~CWSibling;
209 if((c = getclient(ev->window))) { 203 if((c = getclient(ev->window))) {
210 gravitate(c, True); 204 gravitate(c, True);
211 if(ev->value_mask & CWX) 205 if(ev->value_mask & CWX)
246 } 240 }
247 241
248 static void 242 static void
249 enternotify(XEvent *e) 243 enternotify(XEvent *e)
250 { 244 {
245 Client *c;
251 XCrossingEvent *ev = &e->xcrossing; 246 XCrossingEvent *ev = &e->xcrossing;
252 Client *c;
253 247
254 if(ev->mode != NotifyNormal || ev->detail == NotifyInferior) 248 if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
255 return; 249 return;
256 250
257 if((c = getclient(ev->window))) 251 if((c = getclient(ev->window)))
261 } 255 }
262 256
263 static void 257 static void
264 expose(XEvent *e) 258 expose(XEvent *e)
265 { 259 {
260 Client *c;
266 XExposeEvent *ev = &e->xexpose; 261 XExposeEvent *ev = &e->xexpose;
267 Client *c;
268 262
269 if(ev->count == 0) { 263 if(ev->count == 0) {
270 if(barwin == ev->window) 264 if(barwin == ev->window)
271 drawstatus(); 265 drawstatus();
272 else if((c = getctitle(ev->window))) 266 else if((c = getctitle(ev->window)))
275 } 269 }
276 270
277 static void 271 static void
278 keypress(XEvent *e) 272 keypress(XEvent *e)
279 { 273 {
280 XKeyEvent *ev = &e->xkey;
281 static unsigned int len = key ? sizeof(key) / sizeof(key[0]) : 0; 274 static unsigned int len = key ? sizeof(key) / sizeof(key[0]) : 0;
282 unsigned int i; 275 unsigned int i;
283 KeySym keysym; 276 KeySym keysym;
277 XKeyEvent *ev = &e->xkey;
284 278
285 keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); 279 keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
286 for(i = 0; i < len; i++) 280 for(i = 0; i < len; i++)
287 if((keysym == key[i].keysym) && (key[i].mod == ev->state)) { 281 if((keysym == key[i].keysym) && (key[i].mod == ev->state)) {
288 if(key[i].func) 282 if(key[i].func)
301 } 295 }
302 296
303 static void 297 static void
304 maprequest(XEvent *e) 298 maprequest(XEvent *e)
305 { 299 {
300 static XWindowAttributes wa;
306 XMapRequestEvent *ev = &e->xmaprequest; 301 XMapRequestEvent *ev = &e->xmaprequest;
307 static XWindowAttributes wa;
308 302
309 if(!XGetWindowAttributes(dpy, ev->window, &wa)) 303 if(!XGetWindowAttributes(dpy, ev->window, &wa))
310 return; 304 return;
311 305
312 if(wa.override_redirect) { 306 if(wa.override_redirect) {
320 } 314 }
321 315
322 static void 316 static void
323 propertynotify(XEvent *e) 317 propertynotify(XEvent *e)
324 { 318 {
319 Client *c;
320 Window trans;
325 XPropertyEvent *ev = &e->xproperty; 321 XPropertyEvent *ev = &e->xproperty;
326 Window trans;
327 Client *c;
328 322
329 if(ev->state == PropertyDelete) 323 if(ev->state == PropertyDelete)
330 return; /* ignore */ 324 return; /* ignore */
331 325
332 if((c = getclient(ev->window))) { 326 if((c = getclient(ev->window))) {