improved tile() for the RESIZEHINTS == True case, now more space is consumed by the clients (esp. if those clients use increment handling heavily)

keyboard
Anselm R. Garbe 17 years ago
parent f92a4e45c4
commit 3f3086f8b8
  1. 11
      dwm.c

11
dwm.c

@ -1569,7 +1569,7 @@ textw(const char *text) {
void void
tile(void) { tile(void) {
unsigned int i, n, nx, ny, nw, nh, mw, th; 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)) for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
n++; n++;
@ -1582,7 +1582,8 @@ tile(void) {
nx = wax; nx = wax;
ny = way; 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; c->ismax = False;
if(i == 0) { /* master */ if(i == 0) { /* master */
nw = mw - 2 * c->border; nw = mw - 2 * c->border;
@ -1591,9 +1592,9 @@ tile(void) {
else { /* tile window */ else { /* tile window */
if(i == 1) { if(i == 1) {
ny = way; 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 */ if(i + 1 == n) /* remainder */
nh = (way + wah) - ny - 2 * c->border; nh = (way + wah) - ny - 2 * c->border;
else else
@ -1601,7 +1602,7 @@ tile(void) {
} }
resize(c, nx, ny, nw, nh, RESIZEHINTS); resize(c, nx, ny, nw, nh, RESIZEHINTS);
if(n > 1 && th != wah) if(n > 1 && th != wah)
ny += nh + 2 * c->border; ny = c->y + c->h + 2 * c->border;
} }
} }

Loading…
Cancel
Save