about summary refs log tree commit diff stats
path: root/dwm.c
diff options
context:
space:
mode:
authorAnselm R Garbe <garbeam@gmail.com>2008-02-20 08:13:41 +0000
committerAnselm R Garbe <garbeam@gmail.com>2008-02-20 08:13:41 +0000
commite0f039789643381485dab5c467f66db5162d4f63 (patch)
tree6c43539e190efe07746803d47edc66cbd9c73ce2 /dwm.c
parentca3e847e459e1ba43f45513877d39d50cce7a0c5 (diff)
downloaddwm-e0f039789643381485dab5c467f66db5162d4f63.tar.gz
resize handles offscreen issues
Diffstat (limited to 'dwm.c')
-rw-r--r--dwm.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/dwm.c b/dwm.c
index 0a1ade2..363c202 100644
--- a/dwm.c
+++ b/dwm.c
@@ -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;