event.c
changeset 825 bef1854ce739
parent 823 fb5cbf0bd923
child 830 5a4fd8fec414
equal deleted inserted replaced
824:f0ee918c0551 825:bef1854ce739
   111 	}
   111 	}
   112 }
   112 }
   113 
   113 
   114 static void
   114 static void
   115 buttonpress(XEvent *e) {
   115 buttonpress(XEvent *e) {
   116 	static char arg[8];
   116 	static char buf[32];
   117 	int i, x;
   117 	unsigned int i, x;
   118 	Client *c;
   118 	Client *c;
   119 	XButtonPressedEvent *ev = &e->xbutton;
   119 	XButtonPressedEvent *ev = &e->xbutton;
   120 
   120 
   121 	arg[0] = 0;
   121 	buf[0] = 0;
   122 	if(barwin == ev->window) {
   122 	if(barwin == ev->window) {
   123 		x = 0;
   123 		x = 0;
   124 		for(i = 0; i < ntags; i++) {
   124 		for(i = 0; i < ntags; i++) {
   125 			x += textw(tags[i]);
   125 			x += textw(tags[i]);
   126 			if(ev->x < x) {
   126 			if(ev->x < x) {
   127 				snprintf(arg, sizeof arg, "%d", i);
   127 				snprintf(buf, sizeof buf, "%d", i);
   128 				if(ev->button == Button1) {
   128 				if(ev->button == Button1) {
   129 					if(ev->state & MODKEY)
   129 					if(ev->state & MODKEY)
   130 						tag(arg);
   130 						tag(buf);
   131 					else
   131 					else
   132 						view(arg);
   132 						view(buf);
   133 				}
   133 				}
   134 				else if(ev->button == Button3) {
   134 				else if(ev->button == Button3) {
   135 					if(ev->state & MODKEY)
   135 					if(ev->state & MODKEY)
   136 						toggletag(arg);
   136 						toggletag(buf);
   137 					else
   137 					else
   138 						toggleview(arg);
   138 						toggleview(buf);
   139 				}
   139 				}
   140 				return;
   140 				return;
   141 			}
   141 			}
   142 		}
   142 		}
   143 		if(ev->x < x + blw)
   143 		if(ev->x < x + blw)
   144 			switch(ev->button) {
   144 			switch(ev->button) {
   145 			case Button1:
   145 			case Button1:
   146 				setlayout("-1");
   146 				setlayout(NULL);
   147 				break;
   147 				break;
   148 			}
   148 			}
   149 	}
   149 	}
   150 	else if((c = getclient(ev->window))) {
   150 	else if((c = getclient(ev->window))) {
   151 		focus(c);
   151 		focus(c);