X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=tile.c;h=82696769e02a403fc6af59e7efe0a20e939260a3;hp=ab21ec9cf13b1c85228e9ca35f6ac9c4ac6ed810;hb=6bdef73a4f0c2a96f8984ddc10b55f1d753ab5fe;hpb=a864a82b3460bbceda03709dfd9de34b19f9b8cf diff --git a/tile.c b/tile.c index ab21ec9..8269676 100644 --- a/tile.c +++ b/tile.c @@ -1,5 +1,4 @@ /* See LICENSE file for copyright and license details. */ -double mfact = MFACT; int bx, by, bw, bh, blw, mx, my, mw, mh, tx, ty, tw, th, wx, wy, ww, wh; void setmfact(const char *arg); @@ -11,10 +10,8 @@ void setmfact(const char *arg) { double d; - if(lt->arrange != tile) + if(!arg || lt->arrange != tile) return; - if(!arg) - mfact = MFACT; else { d = strtod(arg, NULL); if(arg[0] == '-' || arg[0] == '+') @@ -23,13 +20,13 @@ setmfact(const char *arg) { return; mfact = d; } - updategeom(); + updatetilegeom(); arrange(); } void tile(void) { - int y, h; + int x, y, h, w; unsigned int i, n; Client *c; @@ -49,16 +46,18 @@ tile(void) { return; /* tile stack */ + x = (tx > c->x + c->w) ? c->x + c->w + 2 * c->bw : tw; y = ty; + w = (tx > c->x + c->w) ? wx + ww - x : tw; h = th / n; if(h < bh) h = th; for(i = 0, c = nextunfloating(c->next); c; c = nextunfloating(c->next), i++) { if(i + 1 == n) /* remainder */ - tileresize(c, tx, y, tw - 2 * c->bw, (ty + th) - y - 2 * c->bw); + tileresize(c, x, y, w - 2 * c->bw, (ty + th) - y - 2 * c->bw); else - tileresize(c, tx, y, tw - 2 * c->bw, h - 2 * c->bw); + tileresize(c, x, y, w - 2 * c->bw, h - 2 * c->bw); if(h != th) y = c->y + c->h + 2 * c->bw; } @@ -66,8 +65,8 @@ tile(void) { void tileresize(Client *c, int x, int y, int w, int h) { - resize(c, x, y, w, h, RESIZEHINTS); - if((RESIZEHINTS) && ((c->h < bh) || (c->h > h) || (c->w < bh) || (c->w > w))) + resize(c, x, y, w, h, resizehints); + if(resizehints && ((c->h < bh) || (c->h > h) || (c->w < bh) || (c->w > w))) /* client doesn't accept size constraints */ resize(c, x, y, w, h, False); }