- // one of these:
- // * zero tiled windows
- // * one tiled window that's not a screen hog
- // * miltiple tiled windows
- mw = m->ww;
- }
- right_width = m->ww - mw;
- tabs_count = tiled_count - 2;
- cur_tab = 0;
- for (i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) {
- if (i == 0) {
- resize(c, m->wx, m->wy, mw, m->wh, False, 0);
- } else {
- if (c == vis_slave) {
- resize(c, m->wx + mw, m->wy, right_width, m->wh - 30, False, base);
- } else {
- // this function does not get called when focus changes
- // resize(c, m->wx + m->ww, m->wy, m->ww - mw, m->wh, False);
- resize(c, m->wx + mw + right_width * cur_tab / tabs_count, m->wy + m->wh - 20, right_width, m->wh - 30, False, base);
- cur_tab += 1;
- }
- }
+ master_width = m->ww * m->mfact - GUTTER_PX / 2;
+ }
+ slave_left = m->ww * m->mfact + GUTTER_PX / 2;
+ slave_width = m->ww * (1 - m->mfact) - GUTTER_PX / 2;
+
+ // resize/reposition master
+ resize(master,
+ m->wx,
+ m->wy,
+ master_width,
+ m->wh,
+ False,
+ 0
+ );
+ // resize/reposition slaves
+ base = master; // window to be above in the stacking order
+ for (c = nexttiled(master->next); c; c = nexttiled(c->next)) {
+ resize(c,
+ slave_left,
+ c == slave ? m->wy : m->wy - m->wh,
+ slave_width,
+ m->wh,
+ False,
+ base
+ );