X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=dwm.c;h=b86ba946d5cf3a90abe65b2a411b25154f0b7ea0;hb=71681c21a594260604779b96f46d51c82af11a03;hp=db3eaaf3647bca14add148557147bea16ef861b3;hpb=7ac4f8a4afd9766d485b03bff4c6cc02cbe3696c;p=dwm.git diff --git a/dwm.c b/dwm.c index db3eaaf..b86ba94 100644 --- a/dwm.c +++ b/dwm.c @@ -240,7 +240,7 @@ Window root, barwin; void applyrules(Client *c) { - unsigned int i; + unsigned int i, j; Bool matched = False; Rule *r; XClassHint ch = { 0 }; @@ -254,7 +254,11 @@ applyrules(Client *c) { && (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) { c->isfloating = r->isfloating; if(r->tag) { - c->tags[idxoftag(r->tag)] = True; + if(r->tag[0] == '*' && r->tag[1] == 0) + for(j = 0; j < LENGTH(tags); i++) + c->tags[j] = True; + else + c->tags[idxoftag(r->tag)] = True; matched = True; } } @@ -504,7 +508,7 @@ void detachstack(Client *c) { Client **tc; - for(tc=&stack; *tc && *tc != c; tc=&(*tc)->snext); + for(tc = &stack; *tc && *tc != c; tc = &(*tc)->snext); *tc = c->snext; } @@ -595,7 +599,7 @@ drawtext(const char *text, unsigned long col[ColLast], Bool invert) { x = dc.x + (h / 2); /* shorten text if necessary */ for(; len && (w = textnw(buf, len)) > dc.w - h; len--); - if (!len) + if(!len) return; if(len < olen) { if(len > 1) @@ -782,21 +786,21 @@ grabbuttons(Client *c, Bool focused) { int i, j; unsigned int buttons[] = { Button1, Button2, Button3 }; unsigned int modifiers[] = { MODKEY, MODKEY|LockMask, MODKEY|numlockmask, - MODKEY|numlockmask|LockMask} ; + MODKEY|numlockmask|LockMask} ; XUngrabButton(dpy, AnyButton, AnyModifier, c->win); if(focused) for(i = 0; i < LENGTH(buttons); i++) for(j = 0; j < LENGTH(modifiers); j++) XGrabButton(dpy, buttons[i], modifiers[j], c->win, False, - BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); + BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); else XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, - BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); + BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); } void -grabkeys(void) { +grabkeys(void) { unsigned int i, j; KeyCode code; XModifierKeymap *modmap; @@ -1041,7 +1045,7 @@ monocle(void) { Client *c; for(c = clients; c; c = c->next) - if((lt->isfloating || !c->isfloating) && isvisible(c, NULL)) + if((lt->isfloating || !c->isfloating) && isvisible(c, NULL)) resize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw, RESIZEHINTS); } @@ -1055,7 +1059,7 @@ movemouse(Client *c) { ocx = nx = c->x; ocy = ny = c->y; if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, - None, cursor[CurMove], CurrentTime) != GrabSuccess) + None, cursor[CurMove], CurrentTime) != GrabSuccess) return; XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); for(;;) { @@ -1162,8 +1166,7 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) { /* adjust for aspect limits */ if(c->minax != c->maxax && c->minay != c->maxay - && c->minax > 0 && c->maxax > 0 && c->minay > 0 && c->maxay > 0) - { + && c->minax > 0 && c->maxax > 0 && c->minay > 0 && c->maxay > 0) { if(w * c->maxay > h * c->maxax) w = h * c->maxax / c->maxay; else if(w * c->minay < h * c->minax) @@ -1221,7 +1224,7 @@ resizemouse(Client *c) { ocx = c->x; ocy = c->y; if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, - None, cursor[CurResize], CurrentTime) != GrabSuccess) + None, cursor[CurResize], CurrentTime) != GrabSuccess) return; XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1); for(;;) { @@ -1351,7 +1354,7 @@ scan(void) { if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) { for(i = 0; i < num; i++) { if(!XGetWindowAttributes(dpy, wins[i], &wa) - || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1)) + || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1)) continue; if(wa.map_state == IsViewable || getstate(wins[i]) == IconicState) manage(wins[i], &wa); @@ -1360,7 +1363,7 @@ scan(void) { if(!XGetWindowAttributes(dpy, wins[i], &wa)) continue; if(XGetTransientForHint(dpy, wins[i], &d1) - && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState)) + && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState)) manage(wins[i], &wa); } } @@ -1432,8 +1435,7 @@ setup(void) { sw = DisplayWidth(dpy, screen); sh = DisplayHeight(dpy, screen); bh = dc.font.height + 2; - - /* update geometry */ + mfact = MFACT; updategeom(); /* init atoms */ @@ -1480,8 +1482,8 @@ setup(void) { wa.event_mask = ButtonPressMask|ExposureMask; barwin = XCreateWindow(dpy, root, bx, by, bw, bh, 0, DefaultDepth(dpy, screen), - CopyFromParent, DefaultVisual(dpy, screen), - CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); + CopyFromParent, DefaultVisual(dpy, screen), + CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); XDefineCursor(dpy, barwin, cursor[CurNormal]); XMapRaised(dpy, barwin); strcpy(stext, "dwm-"VERSION); @@ -1533,7 +1535,7 @@ tag(const char *arg) { if(!sel) return; for(i = 0; i < LENGTH(tags); i++) - sel->tags[i] = (NULL == arg); + sel->tags[i] = (arg == NULL); sel->tags[idxoftag(arg)] = True; arrange(); } @@ -1705,7 +1707,6 @@ unmapnotify(XEvent *e) { void updatebar(void) { - if(dc.drawable != 0) XFreePixmap(dpy, dc.drawable); dc.drawable = XCreatePixmap(dpy, root, bw, bh, DefaultDepth(dpy, screen)); @@ -1722,12 +1723,11 @@ updategeom(void) { /* window area geometry */ wx = sx; - wy = sy; + wy = sy + bh; ww = sw; wh = sh - bh; /* master area geometry */ - mfact = MFACT; mx = wx; my = wy; mw = mfact * ww; @@ -1813,7 +1813,7 @@ updatewmhints(Client *c) { void view(const char *arg) { - seltags ^= 1; + seltags ^= 1; /* toggle sel tagset */ memset(tagset[seltags], (NULL == arg), TAGSZ); tagset[seltags][idxoftag(arg)] = True; arrange(); @@ -1841,7 +1841,7 @@ xerror(Display *dpy, XErrorEvent *ee) { || (ee->request_code == X_CopyArea && ee->error_code == BadDrawable)) return 0; fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n", - ee->request_code, ee->error_code); + ee->request_code, ee->error_code); return xerrorxlib(dpy, ee); /* may call exit */ }