X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=dwm.c;h=dd55ee22bed4af8802a698cee1821bce4528fc58;hb=9ff5143acba0c6b457bfb92370c8397b7f124f3a;hp=4153f416e979087c31d8bf7fb50c28c434d42f68;hpb=5cd65f8cd85928a0f26c80a209c82781cb342365;p=dwm.git diff --git a/dwm.c b/dwm.c index 4153f41..dd55ee2 100644 --- a/dwm.c +++ b/dwm.c @@ -59,8 +59,8 @@ 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 = -1, ClkStatusText = -2, ClkWinTitle = -3, - ClkClientWin = -4, ClkRootWin = -5, ClkLast = -6};/* clicks */ +enum { ClkLtSymbol = 64, ClkStatusText, ClkWinTitle, + ClkClientWin, ClkLast }; /* clicks */ /* typedefs */ typedef unsigned int uint; @@ -312,26 +312,27 @@ buttonpress(XEvent *e) { Client *c; XButtonPressedEvent *ev = &e->xbutton; - click = ClkRootWin; + click = ClkLast; 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); } @@ -1320,12 +1321,12 @@ setup(void) { /* init screen */ screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); - initfont(FONT); + initfont(font); sx = 0; sy = 0; sw = DisplayWidth(dpy, screen); sh = DisplayHeight(dpy, screen); - bh = dc.font.height + 2; + bh = dc.h = dc.font.height + 2; lt = layouts; updategeom(); @@ -1343,14 +1344,12 @@ setup(void) { cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur); /* init appearance */ - dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR); - dc.norm[ColBG] = getcolor(NORMBGCOLOR); - dc.norm[ColFG] = getcolor(NORMFGCOLOR); - dc.sel[ColBorder] = getcolor(SELBORDERCOLOR); - dc.sel[ColBG] = getcolor(SELBGCOLOR); - dc.sel[ColFG] = getcolor(SELFGCOLOR); - initfont(FONT); - dc.h = bh; + dc.norm[ColBorder] = getcolor(normbordercolor); + dc.norm[ColBG] = getcolor(normbgcolor); + dc.norm[ColFG] = getcolor(normfgcolor); + dc.sel[ColBorder] = getcolor(selbordercolor); + dc.sel[ColBG] = getcolor(selbgcolor); + dc.sel[ColFG] = getcolor(selfgcolor); dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen)); dc.gc = XCreateGC(dpy, root, 0, 0); XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); @@ -1646,7 +1645,7 @@ updatewmhints(Client *c) { 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(); }