event.c
changeset 80 8125f908c80c
parent 79 aabebd6e61f3
child 84 052fe7498930
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;