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…
	
		Reference in New Issue