diff options
author | arg@mmvi <unknown> | 2006-09-22 07:37:56 +0200 |
---|---|---|
committer | arg@mmvi <unknown> | 2006-09-22 07:37:56 +0200 |
commit | d800ec05ff63451193a0b858c114f5144534c2a1 (patch) | |
tree | cc6261bca4c022b6a22d0a1568bf3ea3ec4c9c06 /view.c | |
parent | bda53ac6ad834824e8e5d5678ccd638a122c173a (diff) |
implemented the maximization as I described on the mailinglist, this feels better to me.
Diffstat (limited to 'view.c')
-rw-r--r-- | view.c | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -61,8 +61,6 @@ void dofloat(Arg *arg) { Client *c; - maximized = False; - for(c = clients; c; c = c->next) { if(isvisible(c)) { resize(c, True, TopLeft); @@ -82,8 +80,6 @@ dotile(Arg *arg) { int h, i, n, w; Client *c; - maximized = False; - w = sw - mw; for(n = 0, c = clients; c; c = c->next) if(isvisible(c) && !c->isfloat) @@ -190,7 +186,7 @@ resizecol(Arg *arg) { for(n = 0, c = clients; c; c = c->next) if(isvisible(c) && !c->isfloat) n++; - if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized) + if(!sel || sel->isfloat || n < 2 || (arrange != dotile)) return; if(sel == getnext(clients)) { @@ -273,13 +269,28 @@ viewall(Arg *arg) { void zoom(Arg *arg) { + int tmp; unsigned int n; Client *c; + XEvent ev; + + if(!sel) + return; + + if(sel->isfloat || (arrange == dofloat)) { + tmp = sel->x; sel->x = sel->rx; sel->rx = tmp; + tmp = sel->y; sel->y = sel->ry; sel->ry = tmp; + tmp = sel->w; sel->w = sel->rw; sel->rw = tmp; + tmp = sel->h; sel->h = sel->rh; sel->rh = tmp; + resize(sel, True, TopLeft); + while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); + return; + } for(n = 0, c = clients; c; c = c->next) if(isvisible(c) && !c->isfloat) n++; - if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized) + if(n < 2 || (arrange != dotile)) return; if((c = sel) == nexttiled(clients)) |