From d800ec05ff63451193a0b858c114f5144534c2a1 Mon Sep 17 00:00:00 2001 From: "arg@mmvi" Date: Fri, 22 Sep 2006 07:37:56 +0200 Subject: implemented the maximization as I described on the mailinglist, this feels better to me. --- view.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'view.c') diff --git a/view.c b/view.c index 80d483ae..fce7309d 100644 --- a/view.c +++ b/view.c @@ -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)) -- cgit v1.2.3