aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2012-03-04 03:39:15 +0200
committerIvan Kanakarakis <ivan.kanak@gmail.com>2012-03-04 06:24:04 +0200
commit3726c128523c9582da95132b6fcb7378c6c8d197 (patch)
treee46e8942296b0f46a341d28b2f51b63604a8f0de
parentacb1ab14b5fdd1015d8b0ae39a3ed2d2ad29a814 (diff)
stack: fix height of last client when floating clients are around
-rw-r--r--monsterwm.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/monsterwm.c b/monsterwm.c
index c0d0c37..4ed667c 100644
--- a/monsterwm.c
+++ b/monsterwm.c
@@ -803,13 +803,14 @@ void stack(int hh, int cy) {
int cx = b ? 0:ma, cw = (b ? hh:ww) - 2*BORDER_WIDTH - ma, ch = z - BORDER_WIDTH;
- for (cy += b ? ma:0, c=c->next; c; c=c->next)
- if (!c->isfullscrn && !c->isfloating && !c->istransient) {
- if (!c->next) ch += d - BORDER_WIDTH;
- b ? XMoveResizeWindow(dis, c->win, cx, cy, ch, cw)
- : XMoveResizeWindow(dis, c->win, cx, cy, cw, ch);
- b ? (cx += z) : (cy += z);
- }
+ for (cy += b ? ma:0, c=c->next; c; c=c->next) {
+ if (ISFFT(c)) continue;
+ for (t=c->next; t && ISFFT(t); t=t->next);
+ if (!t) ch += d - BORDER_WIDTH; /* add remaining space to last window */
+ b ? XMoveResizeWindow(dis, c->win, cx, cy, ch, cw)
+ : XMoveResizeWindow(dis, c->win, cx, cy, cw, ch);
+ b ? (cx += z) : (cy += z);
+ }
}
/* swap master window with current or