summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.c2
-rw-r--r--config.mk2
-rw-r--r--view.c10
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;
}