improved tile() for the RESIZEHINTS == True case, now more space is consumed by the clients (esp. if those clients use increment handling heavily)
This commit is contained in:
parent
f92a4e45c4
commit
3f3086f8b8
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…
Reference in New Issue
Block a user