simplified tile()
This commit is contained in:
		
							parent
							
								
									2d4faae522
								
							
						
					
					
						commit
						9189f7a12d
					
				
							
								
								
									
										52
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								dwm.c
									
									
									
									
									
								
							| @ -170,7 +170,6 @@ void spawn(const void *arg); | |||||||
| void tag(const void *arg); | void tag(const void *arg); | ||||||
| uint textnw(const char *text, uint len); | uint textnw(const char *text, uint len); | ||||||
| void tile(void); | void tile(void); | ||||||
| void tileresize(Client *c, int x, int y, int w, int h); |  | ||||||
| void togglebar(const void *arg); | void togglebar(const void *arg); | ||||||
| void togglefloating(const void *arg); | void togglefloating(const void *arg); | ||||||
| void togglelayout(const void *arg); | void togglelayout(const void *arg); | ||||||
| @ -1123,6 +1122,10 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) { | |||||||
| 		x = sx; | 		x = sx; | ||||||
| 	if(y + h + 2 * c->bw < sy) | 	if(y + h + 2 * c->bw < sy) | ||||||
| 		y = sy; | 		y = sy; | ||||||
|  | 	if(h < bh) | ||||||
|  | 		h = bh; | ||||||
|  | 	if(w < bh) | ||||||
|  | 		w = bh; | ||||||
| 	if(c->x != x || c->y != y || c->w != w || c->h != h || c->isbanned || c->ismax) { | 	if(c->x != x || c->y != y || c->w != w || c->h != h || c->isbanned || c->ismax) { | ||||||
| 		c->isbanned = c->ismax = False; | 		c->isbanned = c->ismax = False; | ||||||
| 		c->x = wc.x = x; | 		c->x = wc.x = x; | ||||||
| @ -1435,7 +1438,7 @@ textnw(const char *text, uint len) { | |||||||
| 
 | 
 | ||||||
| void | void | ||||||
| tile(void) { | tile(void) { | ||||||
| 	int x, y, h, w, mx, my, mw, mh, tx, ty, tw, th; | 	int x, y, h, w, mw; | ||||||
| 	uint i, n; | 	uint i, n; | ||||||
| 	Client *c; | 	Client *c; | ||||||
| 
 | 
 | ||||||
| @ -1443,55 +1446,30 @@ tile(void) { | |||||||
| 	if(n == 0) | 	if(n == 0) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	/* master area geometry */ |  | ||||||
| 	mx = wx; |  | ||||||
| 	my = wy; |  | ||||||
| 	mw = mfact * ww; |  | ||||||
| 	mh = wh; |  | ||||||
| 
 |  | ||||||
| 	/* tile area geometry */ |  | ||||||
| 	tx = mx + mw; |  | ||||||
| 	ty = wy; |  | ||||||
| 	tw = ww - mw; |  | ||||||
| 	th = wh; |  | ||||||
| 
 |  | ||||||
| 	/* master */ | 	/* master */ | ||||||
| 	c = nexttiled(clients); | 	c = nexttiled(clients); | ||||||
| 
 | 	mw = mfact * ww; | ||||||
| 	if(n == 1) | 	resize(c, wx, wy, ((n == 1) ? ww : mw) - 2 * c->bw, wh - 2 * c->bw, resizehints); | ||||||
| 		tileresize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw); |  | ||||||
| 	else |  | ||||||
| 		tileresize(c, mx, my, mw - 2 * c->bw, mh - 2 * c->bw); |  | ||||||
| 
 | 
 | ||||||
| 	if(--n == 0) | 	if(--n == 0) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	/* tile stack */ | 	/* tile stack */ | ||||||
| 	x = (tx > c->x + c->w) ? c->x + c->w + 2 * c->bw : tw; | 	x = (wx + mw > c->x + c->w) ? c->x + c->w + 2 * c->bw : ww - mw; | ||||||
| 	y = ty; | 	y = wy; | ||||||
| 	w = (tx > c->x + c->w) ? wx + ww - x : tw; | 	w = (wx + mw > c->x + c->w) ? wx + ww - x : ww - mw; | ||||||
| 	h = th / n; | 	h = wh / n; | ||||||
| 	if(h < bh) | 	if(h < bh) | ||||||
| 		h = th; | 		h = wh; | ||||||
| 
 | 
 | ||||||
| 	for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next), i++) { | 	for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next), i++) { | ||||||
| 		if(i + 1 == n) /* remainder */ | 		resize(c, x, y, w - 2 * c->bw, /* remainder */ ((i + 1 == n) | ||||||
| 			tileresize(c, x, y, w - 2 * c->bw, (ty + th) - y - 2 * c->bw); | 		       ? (wy + wh) - y : h) - 2 * c->bw, resizehints); | ||||||
| 		else | 		if(h != wh) | ||||||
| 			tileresize(c, x, y, w - 2 * c->bw, h - 2 * c->bw); |  | ||||||
| 		if(h != th) |  | ||||||
| 			y = c->y + c->h + 2 * c->bw; | 			y = c->y + c->h + 2 * c->bw; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void |  | ||||||
| tileresize(Client *c, int x, int y, int w, int h) { |  | ||||||
| 	resize(c, x, y, w, h, resizehints); |  | ||||||
| 	if(resizehints && ((c->h < bh) || (c->h > h) || (c->w < bh) || (c->w > w))) |  | ||||||
| 		/* client doesn't accept size constraints */ |  | ||||||
| 		resize(c, x, y, w, h, False); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void | void | ||||||
| togglebar(const void *arg) { | togglebar(const void *arg) { | ||||||
| 	showbar = !showbar; | 	showbar = !showbar; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anselm R Garbe
						Anselm R Garbe