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))  | 
