diff options
author | Anselm R. Garbe <garbeam@gmail.com> | 2007-09-15 22:25:27 +0200 |
---|---|---|
committer | Anselm R. Garbe <garbeam@gmail.com> | 2007-09-15 22:25:27 +0200 |
commit | 0235a84ef286db5c97239615ae525ce973641941 (patch) | |
tree | eed9e2c2b39249ada5353a841f8717894bf236b0 /tile.c | |
parent | 2091200c957783deed032380d56c4199a23c6b81 (diff) | |
download | dwm-0235a84ef286db5c97239615ae525ce973641941.tar dwm-0235a84ef286db5c97239615ae525ce973641941.tar.gz dwm-0235a84ef286db5c97239615ae525ce973641941.tar.bz2 |
micromizing dwm step 1
Diffstat (limited to 'tile.c')
-rw-r--r-- | tile.c | 85 |
1 files changed, 0 insertions, 85 deletions
@@ -1,85 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "dwm.h" -#include <stdio.h> - -/* static */ - -static double mwfact = MWFACT; - -/* extern */ - -void -setmwfact(const char *arg) { - double delta; - - if(!isarrange(tile)) - return; - /* arg handling, manipulate mwfact */ - if(arg == NULL) - mwfact = MWFACT; - else if(1 == sscanf(arg, "%lf", &delta)) { - if(arg[0] != '+' && arg[0] != '-') - mwfact = delta; - else - mwfact += delta; - if(mwfact < 0.1) - mwfact = 0.1; - else if(mwfact > 0.9) - mwfact = 0.9; - } - arrange(); -} - -void -tile(void) { - unsigned int i, n, nx, ny, nw, nh, mw, th; - Client *c; - - for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) - n++; - - /* window geoms */ - mw = (n == 1) ? waw : mwfact * waw; - th = (n > 1) ? wah / (n - 1) : 0; - if(n > 1 && th < bh) - th = wah; - - nx = wax; - ny = way; - for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { - c->ismax = False; - if(i == 0) { /* master */ - nw = mw - 2 * c->border; - nh = wah - 2 * c->border; - } - else { /* tile window */ - if(i == 1) { - ny = way; - nx += mw; - } - nw = waw - mw - 2 * c->border; - if(i + 1 == n) /* remainder */ - nh = (way + wah) - ny - 2 * c->border; - else - nh = th - 2 * c->border; - } - resize(c, nx, ny, nw, nh, RESIZEHINTS); - if(n > 1 && th != wah) - ny += nh + 2 * c->border; - } -} - -void -zoom(const char *arg) { - Client *c; - - if(!sel || !isarrange(tile) || sel->isfloating) - return; - if((c = sel) == nexttiled(clients)) - if(!(c = nexttiled(c->next))) - return; - detach(c); - attach(c); - focus(c); - arrange(); -} |