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 */
 | 
			
		||||
#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),
 | 
			
		||||
 * ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
 | 
			
		||||
static Button buttons[] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -101,14 +95,9 @@ static Button buttons[] = {
 | 
			
		|||
	{ ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
 | 
			
		||||
	{ ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
 | 
			
		||||
	{ ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
 | 
			
		||||
	TAGBUTTONS(0)
 | 
			
		||||
	TAGBUTTONS(1)
 | 
			
		||||
	TAGBUTTONS(2)
 | 
			
		||||
	TAGBUTTONS(3)
 | 
			
		||||
	TAGBUTTONS(4)
 | 
			
		||||
	TAGBUTTONS(5)
 | 
			
		||||
	TAGBUTTONS(6)
 | 
			
		||||
	TAGBUTTONS(7)
 | 
			
		||||
	TAGBUTTONS(8)
 | 
			
		||||
	{ ClkTagBar,            0,              Button1,        view,           {0} }, \
 | 
			
		||||
	{ ClkTagBar,            0,              Button3,        toggleview,     {0} }, \
 | 
			
		||||
	{ ClkTagBar,            MODKEY,         Button1,        tag,            {0} }, \
 | 
			
		||||
	{ ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								dwm.c
								
								
								
								
							
							
						
						
									
										18
									
								
								dwm.c
								
								
								
								
							| 
						 | 
				
			
			@ -60,7 +60,7 @@ enum { CurNormal, CurResize, CurMove, CurLast };        /* cursor */
 | 
			
		|||
enum { ColBorder, ColFG, ColBG, ColLast };              /* color */
 | 
			
		||||
enum { NetSupported, NetWMName, NetLast };              /* EWMH atoms */
 | 
			
		||||
enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */
 | 
			
		||||
enum { ClkLtSymbol = 64, ClkStatusText, ClkWinTitle,
 | 
			
		||||
enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
 | 
			
		||||
       ClkClientWin, ClkRootWin, ClkLast };             /* clicks */
 | 
			
		||||
 | 
			
		||||
/* typedefs */
 | 
			
		||||
| 
						 | 
				
			
			@ -304,17 +304,18 @@ attachstack(Client *c) {
 | 
			
		|||
void
 | 
			
		||||
buttonpress(XEvent *e) {
 | 
			
		||||
	uint i, x, click;
 | 
			
		||||
	Arg arg = {0};
 | 
			
		||||
	Client *c;
 | 
			
		||||
	XButtonPressedEvent *ev = &e->xbutton;
 | 
			
		||||
 | 
			
		||||
	click = ClkRootWin;
 | 
			
		||||
	if(ev->window == barwin) {
 | 
			
		||||
		i = x = 0;
 | 
			
		||||
		do
 | 
			
		||||
		for(i = x = 0; ev->x >= x && ++i < LENGTH(tags); i++)
 | 
			
		||||
			x += TEXTW(tags[i]);
 | 
			
		||||
		while(ev->x >= x && ++i < LENGTH(tags));
 | 
			
		||||
		if(i < LENGTH(tags))
 | 
			
		||||
			click = i;
 | 
			
		||||
		if(i < LENGTH(tags)) {
 | 
			
		||||
			click = ClkTagBar;
 | 
			
		||||
			arg.ui = 1 << i;
 | 
			
		||||
		}
 | 
			
		||||
		else if(ev->x < x + blw)
 | 
			
		||||
			click = ClkLtSymbol;
 | 
			
		||||
		else if(ev->x > wx + ww - TEXTW(stext))
 | 
			
		||||
| 
						 | 
				
			
			@ -330,7 +331,7 @@ buttonpress(XEvent *e) {
 | 
			
		|||
	for(i = 0; i < LENGTH(buttons); i++)
 | 
			
		||||
		if(click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
 | 
			
		||||
		   && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
 | 
			
		||||
			buttons[i].func(&buttons[i].arg);
 | 
			
		||||
			buttons[i].func(click == ClkTagBar ? &arg : &buttons[i].arg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
| 
						 | 
				
			
			@ -1295,8 +1296,9 @@ setclientstate(Client *c, long state) {
 | 
			
		|||
 | 
			
		||||
void
 | 
			
		||||
setlayout(const Arg *arg) {
 | 
			
		||||
	if(!arg || !arg->v || arg->v != lt[sellt])
 | 
			
		||||
		sellt ^= 1;
 | 
			
		||||
	if(arg && arg->v && arg->v != lt[sellt])
 | 
			
		||||
	if(arg && arg->v)
 | 
			
		||||
		lt[sellt] = (Layout *)arg->v;
 | 
			
		||||
	if(sel)
 | 
			
		||||
		arrange();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue