summaryrefslogtreecommitdiff
path: root/dwm.c
diff options
context:
space:
mode:
authorAnselm R. Garbe <garbeam@gmail.com>2007-09-27 20:08:21 +0200
committerAnselm R. Garbe <garbeam@gmail.com>2007-09-27 20:08:21 +0200
commit3f3086f8b87aed5bf443c8fbcbe32e052fc9c17d (patch)
treec38c746832a66ea6f098ea4d44dfa0b43778720d /dwm.c
parentf92a4e45c42b5cdd26ec1a28048d9c47b51b98ce (diff)
improved tile() for the RESIZEHINTS == True case, now more space is consumed by the clients (esp. if those clients use increment handling heavily)
Diffstat (limited to 'dwm.c')
-rw-r--r--dwm.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/dwm.c b/dwm.c
index 277f561..50f4ea0 100644
--- 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;
}
}