aewl

diff view.c @ 522:fd1275f3b205

simplified dotile()
author Anselm R. Garbe <arg@10kloc.org>
date Thu, 05 Oct 2006 12:13:24 +0200
parents 73afe7587bea
children c1dd19da63ef
line diff
     1.1 --- a/view.c	Thu Oct 05 11:00:55 2006 +0200
     1.2 +++ b/view.c	Thu Oct 05 12:13:24 2006 +0200
     1.3 @@ -4,6 +4,8 @@
     1.4   */
     1.5  #include "dwm.h"
     1.6  
     1.7 +#define MINDIM			100
     1.8 +
     1.9  /* static */
    1.10  
    1.11  static Client *
    1.12 @@ -138,69 +140,51 @@
    1.13  				c->h = sh - 2 * BORDERPX - bh;
    1.14  			}
    1.15  			else if(i == 0) { /* master window */
    1.16 +				c->x = sx;
    1.17 +				if(stackpos == StackLeft)
    1.18 +					c->x += stackw;
    1.19 +				c->y = sy + bh;
    1.20  				switch(stackpos) {
    1.21  				case StackLeft:
    1.22 -					c->x = sx + stackw;
    1.23 -					c->y = sy + bh;
    1.24 +				case StackRight:
    1.25  					c->w = master - 2 * BORDERPX;
    1.26  					c->h = sh - bh - 2 * BORDERPX;
    1.27  					break;
    1.28  				case StackBottom:
    1.29 -					c->x = sx;
    1.30 -					c->y = sy + bh;
    1.31  					c->w = sw - 2 * BORDERPX;
    1.32  					c->h = master - 2 * BORDERPX;
    1.33  					break;
    1.34 -				case StackRight:
    1.35 -					c->x = sx;
    1.36 -					c->y = sy + bh;
    1.37 -					c->w = master - 2 * BORDERPX;
    1.38 -					c->h = sh - bh - 2 * BORDERPX;
    1.39 -					break;
    1.40  				}
    1.41  			}
    1.42 -			else if(th > bh) {
    1.43 -				/* tile window */
    1.44 +			else if(th > bh) { /* tile window */
    1.45 +				c->x = sx;
    1.46 +				if(stackpos == StackRight)
    1.47 +					c->x += master;
    1.48  				c->w = tw - 2 * BORDERPX;
    1.49  				c->h = th - 2 * BORDERPX;
    1.50  				switch(stackpos) {
    1.51  				case StackLeft:
    1.52 -					c->x = sx;
    1.53 +				case StackRight:
    1.54  					c->y = sy + (i - 1) * th + bh;
    1.55  					if(i + 1 == n)
    1.56  						c->h = sh - c->y - 2 * BORDERPX;
    1.57  					break;
    1.58  				case StackBottom:
    1.59 -					c->x = sx;
    1.60  					c->y = sy + master + (i - 1) * th + bh;
    1.61  					if(i + 1 == n)
    1.62  						c->h = sh - c->y - 2 * BORDERPX;
    1.63  					break;
    1.64 -				case StackRight:
    1.65 -					c->x = sx + master;
    1.66 -					c->y = sy + (i - 1) * th + bh;
    1.67 -					if(i + 1 == n)
    1.68 -						c->h = sh - c->y - 2 * BORDERPX;
    1.69 -					break;
    1.70  				}
    1.71  			}
    1.72  			else { /* fallback if th < bh */
    1.73 +				c->x = sx;
    1.74 +				if(stackpos == StackRight)
    1.75 +					c->x += master;
    1.76 +				c->y = sy + bh;
    1.77 +				if(stackpos == StackBottom)
    1.78 +					c->y += master;
    1.79  				c->w = stackw - 2 * BORDERPX;
    1.80  				c->h = stackh - 2 * BORDERPX;
    1.81 -				switch(stackpos) {
    1.82 -				case StackLeft:
    1.83 -					c->x = sx;
    1.84 -					c->y = sy + bh;
    1.85 -					break;
    1.86 -				case StackBottom:
    1.87 -					c->x = sx;
    1.88 -					c->y = sy + master + bh;
    1.89 -					break;
    1.90 -				case StackRight:
    1.91 -					c->x = sx + master;
    1.92 -					c->y = sy + bh;
    1.93 -					break;
    1.94 -				}
    1.95  			}
    1.96  			resize(c, False, TopLeft);
    1.97  			i++;
    1.98 @@ -271,12 +255,12 @@
    1.99  
   1.100  	s = stackpos == StackBottom ? sh - bh : sw;
   1.101  	if(sel == getnext(clients)) {
   1.102 -		if(master + arg->i > s - MINW || master + arg->i < MINW)
   1.103 +		if(master + arg->i > s - MINDIM || master + arg->i < MINDIM)
   1.104  			return;
   1.105  		master += arg->i;
   1.106  	}
   1.107  	else {
   1.108 -		if(master - arg->i > s - MINW || master - arg->i < MINW)
   1.109 +		if(master - arg->i > s - MINDIM || master - arg->i < MINDIM)
   1.110  			return;
   1.111  		master -= arg->i;
   1.112  	}