--- dwm.c.old 2010-09-24 18:47:28.259351676 +0200 +++ dwm.c 2010-09-24 19:18:18.233746615 +0200 @@ -372,10 +372,8 @@ if(c->inch) *h -= *h % c->inch; /* restore base dimensions */ - *w += c->basew; - *h += c->baseh; - *w = MAX(*w, c->minw); - *h = MAX(*h, c->minh); + *w = MAX(*w + c->basew, c->minw); + *h = MAX(*h + c->baseh, c->minh); if(c->maxw) *w = MIN(*w, c->maxw); if(c->maxh) @@ -845,7 +843,7 @@ void focusmon(const Arg *arg) { - Monitor *m = NULL; + Monitor *m; if(!mons->next) return; @@ -1100,9 +1098,7 @@ *c = cz; c->win = w; updatetitle(c); - if(XGetTransientForHint(dpy, w, &trans)) - t = wintoclient(trans); - if(t) { + if(XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) { c->mon = t->mon; c->tags = t->tags; } @@ -1117,7 +1113,7 @@ c->h = c->oldh = wa->height; c->oldbw = wa->border_width; if(c->w == c->mon->mw && c->h == c->mon->mh) { - c->isfloating = 1; + c->isfloating = True; c->x = c->mon->mx; c->y = c->mon->my; c->bw = 0; @@ -1273,8 +1269,8 @@ switch (ev->atom) { default: break; case XA_WM_TRANSIENT_FOR: - XGetTransientForHint(dpy, c->win, &trans); - if(!c->isfloating && (c->isfloating = (wintoclient(trans) != NULL))) + if(!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) && + (c->isfloating = (wintoclient(trans)))) arrange(c->mon); break; case XA_WM_NORMAL_HINTS: @@ -1307,7 +1303,7 @@ c->oldstate = c->isfloating; c->oldbw = c->bw; c->bw = 0; - c->isfloating = 1; + c->isfloating = True; resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh); XRaiseWindow(dpy, c->win); }