applied Gottox' ClkTagBar patch
This commit is contained in:
		
							parent
							
								
									c2a916bf30
								
							
						
					
					
						commit
						b86c818599
					
				
							
								
								
									
										19
									
								
								config.def.h
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								config.def.h
									
									
									
									
									
								
							| @ -84,12 +84,6 @@ static Key keys[] = { | |||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /* button definitions */ | /* button definitions */ | ||||||
| #define TAGBUTTONS(TAG) \ |  | ||||||
| 	{ TAG,                  0,              Button1,        view,           {.ui = 1 << TAG} }, \ |  | ||||||
| 	{ TAG,                  0,              Button3,        toggleview,     {.ui = 1 << TAG} }, \ |  | ||||||
| 	{ TAG,                  MODKEY,         Button1,        tag,            {.ui = 1 << TAG} }, \ |  | ||||||
| 	{ TAG,                  MODKEY,         Button3,        toggletag,      {.ui = 1 << TAG} }, |  | ||||||
| 
 |  | ||||||
| /* click can be a tag number (starting at 0),
 | /* click can be a tag number (starting at 0),
 | ||||||
|  * ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ |  * ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ | ||||||
| static Button buttons[] = { | static Button buttons[] = { | ||||||
| @ -101,14 +95,9 @@ static Button buttons[] = { | |||||||
| 	{ ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} }, | 	{ ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} }, | ||||||
| 	{ ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} }, | 	{ ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} }, | ||||||
| 	{ ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} }, | 	{ ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} }, | ||||||
| 	TAGBUTTONS(0) | 	{ ClkTagBar,            0,              Button1,        view,           {0} }, \ | ||||||
| 	TAGBUTTONS(1) | 	{ ClkTagBar,            0,              Button3,        toggleview,     {0} }, \ | ||||||
| 	TAGBUTTONS(2) | 	{ ClkTagBar,            MODKEY,         Button1,        tag,            {0} }, \ | ||||||
| 	TAGBUTTONS(3) | 	{ ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} }, | ||||||
| 	TAGBUTTONS(4) |  | ||||||
| 	TAGBUTTONS(5) |  | ||||||
| 	TAGBUTTONS(6) |  | ||||||
| 	TAGBUTTONS(7) |  | ||||||
| 	TAGBUTTONS(8) |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								dwm.c
									
									
									
									
									
								
							| @ -60,7 +60,7 @@ enum { CurNormal, CurResize, CurMove, CurLast };        /* cursor */ | |||||||
| enum { ColBorder, ColFG, ColBG, ColLast };              /* color */ | enum { ColBorder, ColFG, ColBG, ColLast };              /* color */ | ||||||
| enum { NetSupported, NetWMName, NetLast };              /* EWMH atoms */ | enum { NetSupported, NetWMName, NetLast };              /* EWMH atoms */ | ||||||
| enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ | enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ | ||||||
| enum { ClkLtSymbol = 64, ClkStatusText, ClkWinTitle, | enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, | ||||||
|        ClkClientWin, ClkRootWin, ClkLast };             /* clicks */ |        ClkClientWin, ClkRootWin, ClkLast };             /* clicks */ | ||||||
| 
 | 
 | ||||||
| /* typedefs */ | /* typedefs */ | ||||||
| @ -304,17 +304,18 @@ attachstack(Client *c) { | |||||||
| void | void | ||||||
| buttonpress(XEvent *e) { | buttonpress(XEvent *e) { | ||||||
| 	uint i, x, click; | 	uint i, x, click; | ||||||
|  | 	Arg arg = {0}; | ||||||
| 	Client *c; | 	Client *c; | ||||||
| 	XButtonPressedEvent *ev = &e->xbutton; | 	XButtonPressedEvent *ev = &e->xbutton; | ||||||
| 
 | 
 | ||||||
| 	click = ClkRootWin; | 	click = ClkRootWin; | ||||||
| 	if(ev->window == barwin) { | 	if(ev->window == barwin) { | ||||||
| 		i = x = 0; | 		for(i = x = 0; ev->x >= x && ++i < LENGTH(tags); i++) | ||||||
| 		do |  | ||||||
| 			x += TEXTW(tags[i]); | 			x += TEXTW(tags[i]); | ||||||
| 		while(ev->x >= x && ++i < LENGTH(tags)); | 		if(i < LENGTH(tags)) { | ||||||
| 		if(i < LENGTH(tags)) | 			click = ClkTagBar; | ||||||
| 			click = i; | 			arg.ui = 1 << i; | ||||||
|  | 		} | ||||||
| 		else if(ev->x < x + blw) | 		else if(ev->x < x + blw) | ||||||
| 			click = ClkLtSymbol; | 			click = ClkLtSymbol; | ||||||
| 		else if(ev->x > wx + ww - TEXTW(stext)) | 		else if(ev->x > wx + ww - TEXTW(stext)) | ||||||
| @ -330,7 +331,7 @@ buttonpress(XEvent *e) { | |||||||
| 	for(i = 0; i < LENGTH(buttons); i++) | 	for(i = 0; i < LENGTH(buttons); i++) | ||||||
| 		if(click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button | 		if(click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button | ||||||
| 		   && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state)) | 		   && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state)) | ||||||
| 			buttons[i].func(&buttons[i].arg); | 			buttons[i].func(click == ClkTagBar ? &arg : &buttons[i].arg); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| @ -1295,8 +1296,9 @@ setclientstate(Client *c, long state) { | |||||||
| 
 | 
 | ||||||
| void | void | ||||||
| setlayout(const Arg *arg) { | setlayout(const Arg *arg) { | ||||||
| 	sellt ^= 1; | 	if(!arg || !arg->v || arg->v != lt[sellt]) | ||||||
| 	if(arg && arg->v && arg->v != lt[sellt]) | 		sellt ^= 1; | ||||||
|  | 	if(arg && arg->v) | ||||||
| 		lt[sellt] = (Layout *)arg->v; | 		lt[sellt] = (Layout *)arg->v; | ||||||
| 	if(sel) | 	if(sel) | ||||||
| 		arrange(); | 		arrange(); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anselm R Garbe
						Anselm R Garbe