- unsigned int i, tiled_count, mw, right_width, tabs_count, cur_tab;
- Client *c, *vis_slave, *base = 0;
-
- for(tiled_count = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), tiled_count++);
+ unsigned int i, tiled_count, mw, right_width, tab_counts[2] = {0,0}, cur_tab = 0, *tab_count;
+ int tab_top;
+ Client *c, *vis_slave = 0, *base = 0;
+
+ tab_count = &(tab_counts[0]);
+
+ for(tiled_count = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), tiled_count++) {
+ if (tiled_count == 0) { // master
+ if (c->next) {
+ if (m->sel && (m->sel == c || m->sel->isfloating || !ISVISIBLE(m->sel))) {
+ vis_slave = nexttiled(c->next);
+ } else {
+ vis_slave = m->sel;
+ }
+ }
+ } else {
+ if (c == vis_slave) {
+ tab_count = &(tab_counts[1]);
+ } else {
+ (*tab_count) += 1;
+ }
+ }
+ }