event.c
changeset 813 0ed770c96e51
parent 788 a61fcdf7b4c1
child 821 75bbe1b1e001
equal deleted inserted replaced
812:8992a53a0d6a 813:0ed770c96e51
     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)(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 
   122 		for(a.i = 0; a.i < ntags; a.i++) {
   122 		for(a.i = 0; a.i < ntags; a.i++) {
   123 			x += textw(tags[a.i]);
   123 			x += textw(tags[a.i]);
   124 			if(ev->x < x) {
   124 			if(ev->x < x) {
   125 				if(ev->button == Button1) {
   125 				if(ev->button == Button1) {
   126 					if(ev->state & MODKEY)
   126 					if(ev->state & MODKEY)
   127 						tag(&a);
   127 						tag(a);
   128 					else
   128 					else
   129 						view(&a);
   129 						view(a);
   130 				}
   130 				}
   131 				else if(ev->button == Button3) {
   131 				else if(ev->button == Button3) {
   132 					if(ev->state & MODKEY)
   132 					if(ev->state & MODKEY)
   133 						toggletag(&a);
   133 						toggletag(a);
   134 					else
   134 					else
   135 						toggleview(&a);
   135 						toggleview(a);
   136 				}
   136 				}
   137 				return;
   137 				return;
   138 			}
   138 			}
   139 		}
   139 		}
   140 		if(ev->x < x + blw)
   140 		if(ev->x < x + blw)
   141 			switch(ev->button) {
   141 			switch(ev->button) {
   142 			case Button1:
   142 			case Button1:
   143 				a.i = -1;
   143 				a.i = -1;
   144 				setlayout(&a);
   144 				setlayout(a);
   145 				break;
   145 				break;
   146 			case Button4:
   146 			case Button4:
   147 				a.i = 1;
   147 				a.i = 1;
   148 				incnmaster(&a);
   148 				incnmaster(a);
   149 				break;
   149 				break;
   150 			case Button5:
   150 			case Button5:
   151 				a.i = -1;
   151 				a.i = -1;
   152 				incnmaster(&a);
   152 				incnmaster(a);
   153 				break;
   153 				break;
   154 			}
   154 			}
   155 	}
   155 	}
   156 	else if((c = getclient(ev->window))) {
   156 	else if((c = getclient(ev->window))) {
   157 		focus(c);
   157 		focus(c);
   160 		if(ev->button == Button1 && (lt->arrange == versatile || c->isversatile)) {
   160 		if(ev->button == Button1 && (lt->arrange == versatile || c->isversatile)) {
   161 			restack();
   161 			restack();
   162 			movemouse(c);
   162 			movemouse(c);
   163 		}
   163 		}
   164 		else if(ev->button == Button2)
   164 		else if(ev->button == Button2)
   165 			zoom(NULL);
   165 			zoom(a);
   166 		else if(ev->button == Button3
   166 		else if(ev->button == Button3
   167 		&& (lt->arrange == versatile || c->isversatile) && !c->isfixed)
   167 		&& (lt->arrange == versatile || c->isversatile) && !c->isfixed)
   168 		{
   168 		{
   169 			restack();
   169 			restack();
   170 			resizemouse(c);
   170 			resizemouse(c);
   259 	for(i = 0; i < len; i++)
   259 	for(i = 0; i < len; i++)
   260 		if(keysym == key[i].keysym
   260 		if(keysym == key[i].keysym
   261 		&& CLEANMASK(key[i].mod) == CLEANMASK(ev->state))
   261 		&& CLEANMASK(key[i].mod) == CLEANMASK(ev->state))
   262 		{
   262 		{
   263 			if(key[i].func)
   263 			if(key[i].func)
   264 				key[i].func(&key[i].arg);
   264 				key[i].func(key[i].arg);
   265 		}
   265 		}
   266 }
   266 }
   267 
   267 
   268 static void
   268 static void
   269 leavenotify(XEvent *e) {
   269 leavenotify(XEvent *e) {