dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit 3f3086f8b87aed5bf443c8fbcbe32e052fc9c17d
parent f92a4e45c42b5cdd26ec1a28048d9c47b51b98ce
Author: Anselm R. Garbe <garbeam@gmail.com>
Date:   Thu, 27 Sep 2007 20:08:21 +0200

improved tile() for the RESIZEHINTS == True case, now more space is consumed by the clients (esp. if those clients use increment handling heavily)
Diffstat:
Mdwm.c | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/dwm.c b/dwm.c
@@ -1569,7 +1569,7 @@ textw(const char *text) {
 void
 tile(void) {
     unsigned int i, n, nx, ny, nw, nh, mw, th;
-    Client *c;
+    Client *c, *mc;
 
     for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
         n++;
@@ -1582,7 +1582,8 @@ tile(void) {
 
     nx = wax;
     ny = way;
-    for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) {
+    nw = 0; /* gcc stupidity requires this */
+    for(i = 0, c = mc = nexttiled(clients); c; c = nexttiled(c->next), i++) {
         c->ismax = False;
         if(i == 0) { /* master */
             nw = mw - 2 * c->border;
@@ -1591,9 +1592,9 @@ tile(void) {
         else {  /* tile window */
             if(i == 1) {
                 ny = way;
-                nx += mw;
+                nx += mc->w + 2 * mc->border;
+                nw = waw - nx - 2 * c->border;
             }
-            nw = waw - mw - 2 * c->border;
             if(i + 1 == n) /* remainder */
                 nh = (way + wah) - ny - 2 * c->border;
             else
@@ -1601,7 +1602,7 @@ tile(void) {
         }
         resize(c, nx, ny, nw, nh, RESIZEHINTS);
         if(n > 1 && th != wah)
-            ny += nh + 2 * c->border;
+            ny = c->y + c->h + 2 * c->border;
     }
 }