X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=tile.c;fp=tile.c;h=0000000000000000000000000000000000000000;hb=822101dd5bceadb12351dd5f9084d7745b10ec92;hp=82696769e02a403fc6af59e7efe0a20e939260a3;hpb=6bdef73a4f0c2a96f8984ddc10b55f1d753ab5fe;p=dwm.git diff --git a/tile.c b/tile.c deleted file mode 100644 index 8269676..0000000 --- a/tile.c +++ /dev/null @@ -1,102 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -int bx, by, bw, bh, blw, mx, my, mw, mh, tx, ty, tw, th, wx, wy, ww, wh; - -void setmfact(const char *arg); -void tile(void); -void tileresize(Client *c, int x, int y, int w, int h); -void updatetilegeom(void); - -void -setmfact(const char *arg) { - double d; - - if(!arg || lt->arrange != tile) - return; - else { - d = strtod(arg, NULL); - if(arg[0] == '-' || arg[0] == '+') - d += mfact; - if(d < 0.1 || d > 0.9) - return; - mfact = d; - } - updatetilegeom(); - arrange(); -} - -void -tile(void) { - int x, y, h, w; - unsigned int i, n; - Client *c; - - for(n = 0, c = nextunfloating(clients); c; c = nextunfloating(c->next), n++); - if(n == 0) - return; - - /* master */ - c = nextunfloating(clients); - - if(n == 1) - tileresize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw); - else - tileresize(c, mx, my, mw - 2 * c->bw, mh - 2 * c->bw); - - if(--n == 0) - 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, x, y, w - 2 * c->bw, (ty + th) - y - 2 * c->bw); - else - tileresize(c, x, y, w - 2 * c->bw, h - 2 * c->bw); - if(h != th) - y = c->y + c->h + 2 * c->bw; - } -} - -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))) - /* client doesn't accept size constraints */ - resize(c, x, y, w, h, False); -} - -void -zoom(const char *arg) { - Client *c = sel; - - if(c == nextunfloating(clients)) - if(!c || !(c = nextunfloating(c->next))) - return; - if(lt->arrange == tile && !sel->isfloating) { - detach(c); - attach(c); - focus(c); - } - arrange(); -} - -void -updatetilegeom(void) { - /* master area geometry */ - mx = wx; - my = wy; - mw = mfact * ww; - mh = wh; - - /* tile area geometry */ - tx = mx + mw; - ty = wy; - tw = ww - mw; - th = wh; -}