comparison event.c @ 80:8125f908c80c

several additions in mouse handling ;)
author Anselm R. Garbe <garbeam@wmii.de>
date Sun, 16 Jul 2006 00:47:40 +0200
parents aabebd6e61f3
children 052fe7498930
comparison
equal deleted inserted replaced
79:aabebd6e61f3 80:8125f908c80c
12 #define MouseMask (ButtonMask | PointerMotionMask) 12 #define MouseMask (ButtonMask | PointerMotionMask)
13 13
14 /********** CUSTOMIZE **********/ 14 /********** CUSTOMIZE **********/
15 15
16 const char *term[] = { 16 const char *term[] = {
17 "urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-fn", 17 "urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
18 "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*",NULL 18 "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
19 }; 19 };
20 const char *browse[] = { "firefox", NULL }; 20 const char *browse[] = { "firefox", NULL };
21 const char *xlock[] = { "xlock", NULL }; 21 const char *xlock[] = { "xlock", NULL };
22 22
23 Key key[] = { 23 Key key[] = {
126 Arg a; 126 Arg a;
127 XButtonPressedEvent *ev = &e->xbutton; 127 XButtonPressedEvent *ev = &e->xbutton;
128 Client *c; 128 Client *c;
129 129
130 if(barwin == ev->window) { 130 if(barwin == ev->window) {
131 x = 0; 131 switch(ev->button) {
132 for(a.i = 0; a.i < TLast; a.i++) { 132 default:
133 x += textw(tags[a.i]); 133 x = 0;
134 if(ev->x < x) { 134 for(a.i = 0; a.i < TLast; a.i++) {
135 view(&a); 135 x += textw(tags[a.i]);
136 break; 136 if(ev->x < x) {
137 view(&a);
138 break;
139 }
137 } 140 }
141 break;
142 case Button4:
143 a.i = (tsel + 1 < TLast) ? tsel + 1 : 0;
144 view(&a);
145 break;
146 case Button5:
147 a.i = (tsel - 1 >= 0) ? tsel - 1 : TLast - 1;
148 view(&a);
149 break;
138 } 150 }
139 } 151 }
140 else if((c = getclient(ev->window))) { 152 else if((c = getclient(ev->window))) {
141 if(arrange == dotile && !c->dofloat) 153 if(arrange == dotile && !c->isfloat) {
142 return; 154 if((ev->state & ControlMask) && (ev->button == Button1))
155 zoom(NULL);
156 return;
157 }
158 /* floating windows */
143 higher(c); 159 higher(c);
144 switch(ev->button) { 160 switch(ev->button) {
145 default: 161 default:
146 break; 162 break;
147 case Button1: 163 case Button1:
295 } 311 }
296 switch (ev->atom) { 312 switch (ev->atom) {
297 default: break; 313 default: break;
298 case XA_WM_TRANSIENT_FOR: 314 case XA_WM_TRANSIENT_FOR:
299 XGetTransientForHint(dpy, c->win, &trans); 315 XGetTransientForHint(dpy, c->win, &trans);
300 if(!c->dofloat && (c->dofloat = (trans != 0))) 316 if(!c->isfloat && (c->isfloat = (trans != 0)))
301 arrange(NULL); 317 arrange(NULL);
302 break; 318 break;
303 case XA_WM_NORMAL_HINTS: 319 case XA_WM_NORMAL_HINTS:
304 setsize(c); 320 setsize(c);
305 break; 321 break;