JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
prepared yet another hotfix release
authorAnselm R. Garbe <arg@suckless.org>
Thu, 25 Jan 2007 08:59:48 +0000 (09:59 +0100)
committerAnselm R. Garbe <arg@suckless.org>
Thu, 25 Jan 2007 08:59:48 +0000 (09:59 +0100)
client.c
config.mk
view.c

index 6a178f8..e11abfd 100644 (file)
--- 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;
index a3388e1..a8d453e 100644 (file)
--- 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 (file)
--- 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;
        }