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