summaryrefslogtreecommitdiff
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
parentca3e847e459e1ba43f45513877d39d50cce7a0c5 (diff)
resize handles offscreen issues
-rw-r--r--dwm.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/dwm.c b/dwm.c
index 0a1ade26..363c2028 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;