enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */
enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */
-enum { ClkLtSymbol = -1, ClkStatusText = -2, ClkWinTitle = -3,
- ClkClientWin = -4, ClkRootWin = -5, ClkLast = -6};/* clicks */
+enum { ClkLtSymbol = 64, ClkStatusText, ClkWinTitle,
+ ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
/* typedefs */
typedef unsigned int uint;
click = ClkRootWin;
if(ev->window == barwin) {
- x = 0;
- for(i = 0; i < LENGTH(tags) && ev->x >= x; i++) {
+ i = x = 0;
+ do
x += TEXTW(tags[i]);
- if(i < LENGTH(tags) || ev->x <= x)
- click = i - 1;
- else if(ev->x < x + blw)
- click = ClkLtSymbol;
- else if(ev->x > wx + ww - TEXTW(stext))
- click = ClkStatusText;
- else
- click = ClkWinTitle;
- }
+ while(ev->x >= x && ++i < LENGTH(tags));
+ if(i < LENGTH(tags))
+ click = i;
+ else if(ev->x < x + blw)
+ click = ClkLtSymbol;
+ else if(ev->x > wx + ww - TEXTW(stext))
+ click = ClkStatusText;
+ else
+ click = ClkWinTitle;
}
else if((c = getclient(ev->window)))
click = ClkClientWin;
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))
+ 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);
}
void
view(const Arg *arg) {
seltags ^= 1; /* toggle sel tagset */
- if(arg && (arg->ui & TAGMASK) && (arg->ui & TAGMASK) != tagset[seltags ^ 1])
+ if(arg && (arg->ui & TAGMASK))
tagset[seltags] = arg->i & TAGMASK;
arrange();
}