- mw = m->ww;
- }
- right_width = m->ww - mw - GUTTER_PX;
- tab_count = &(tab_counts[0]);
- tab_top = m->my - m->wh + TAB_HEIGHT;
- 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 + GUTTER_PX,
- m->my + TAB_HEIGHT + TAB_PAD,
- right_width,
- m->wh,
- False,
- base
- );
- tab_count = &(tab_counts[1]);
- tab_top = m->my + m->mh - TAB_HEIGHT;
- cur_tab = 0;
- } 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 + GUTTER_PX + right_width * cur_tab / (*tab_count),
- tab_top,
- right_width,
- m->wh,
- 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
+ );