diff options
-rw-r--r-- | client.c | 2 | ||||
-rw-r--r-- | config.mk | 2 | ||||
-rw-r--r-- | view.c | 10 |
3 files changed, 9 insertions, 5 deletions
diff --git a/client.c b/client.c index 6a178f8..e11abfd 100644 --- a/client.c +++ b/client.c @@ -178,6 +178,8 @@ void resize(Client *c, Bool sizehints) { XWindowChanges wc; + if(c->w <= 0 || c->h <= 0) + return; if(sizehints) { if(c->incw) c->w -= (c->w - c->basew) % c->incw; diff --git a/config.mk b/config.mk index a3388e1..a8d453e 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dwm version -VERSION = 3.2.1 +VERSION = 3.2.2 # Customize below to fit your system diff --git a/view.c b/view.c index 81dd4b3..de3328e 100644 --- a/view.c +++ b/view.c @@ -98,11 +98,11 @@ dotile(void) { else { /* tile window */ c->x += mw; c->w = tw - 2 * BORDERPX; - if(th > bh) { + if(th - 2 * BORDERPX > bh) { c->y += (i - nmaster) * th; c->h = th - 2 * BORDERPX; } - else /* fallback if th < bh */ + else /* fallback if th - 2 * BORDERPX < bh */ c->h = wah - 2 * BORDERPX; } resize(c, False); @@ -149,7 +149,8 @@ focusprev(Arg *arg) { void incnmaster(Arg *arg) { - if((arrange == dofloat) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh)) + if((arrange == dofloat) || (nmaster + arg->i < 1) + || (wah / (nmaster + arg->i) - 2 * BORDERPX < bh)) return; nmaster += arg->i; if(sel) @@ -173,7 +174,8 @@ resizemaster(Arg *arg) { if(arg->i == 0) master = MASTER; else { - if(master + arg->i > 950 || master + arg->i < 50) + if(waw * (master + arg->i) / 1000 > waw - bh - 2 * BORDERPX + || waw * (master + arg->i) / 1000 < bh + 2 * BORDERPX) return; master += arg->i; } |