diff options
| author | Anselm R Garbe <garbeam@gmail.com> | 2008-02-20 08:13:41 +0000 | 
|---|---|---|
| committer | Anselm R Garbe <garbeam@gmail.com> | 2008-02-20 08:13:41 +0000 | 
| commit | e0f039789643381485dab5c467f66db5162d4f63 (patch) | |
| tree | 6c43539e190efe07746803d47edc66cbd9c73ce2 | |
| parent | ca3e847e459e1ba43f45513877d39d50cce7a0c5 (diff) | |
resize handles offscreen issues
| -rw-r--r-- | dwm.c | 24 | 
1 files changed, 11 insertions, 13 deletions
| @@ -1263,9 +1263,10 @@ reapply(const char *arg) {  void  resize(Client *c, int x, int y, int w, int h, Bool sizehints) { +	Monitor *m;  	XWindowChanges wc; -	//Monitor scr = monitors[monitorat()]; -//	c->monitor = monitorat(); + +	m = &monitors[c->monitor];  	if(sizehints) {  		/* set minimum possible */ @@ -1307,17 +1308,14 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) {  	}  	if(w <= 0 || h <= 0)  		return; -	/* TODO: offscreen appearance fixes */ -	/* -	if(x > scr.sw) -		x = scr.sw - w - 2 * c->border; -	if(y > scr.sh) -		y = scr.sh - h - 2 * c->border; -	if(x + w + 2 * c->border < scr.sx) -		x = scr.sx; -	if(y + h + 2 * c->border < scr.sy) -		y = scr.sy; -	*/ +	if(x > m->sw) +		x = m->sw - w - 2 * c->border; +	if(y > m->sh) +		y = m->sh - h - 2 * c->border; +	if(x + w + 2 * c->border < m->sx) +		x = m->sx; +	if(y + h + 2 * c->border < m->sy) +		y = m->sy;  	if(c->x != x || c->y != y || c->w != w || c->h != h) {  		c->x = wc.x = x;  		c->y = wc.y = y; | 
