diff --git a/src/infobar.c b/src/infobar.c index 340dfd6..bcd1e2f 100644 --- a/src/infobar.c +++ b/src/infobar.c @@ -249,7 +249,8 @@ infobar_draw_taglist(int sc) : (textw(tags[sc][seltag[sc]].layout.symbol) + PAD)) + (PAD >> 1), 0); for(c = clients; c; c = c->next) - occupied |= TagFlag(c->tag); + if(c->screen == sc) + occupied |= TagFlag(c->tag); for(i = 1, x = 0; i < conf.ntag[sc] + 1; ++i) { diff --git a/src/tag.c b/src/tag.c index bfbc96a..d1c333d 100644 --- a/src/tag.c +++ b/src/tag.c @@ -238,7 +238,8 @@ uicb_tag_next_visible(uicb_t cmd) } for(c = clients; c; c = c->next) - occupied |= TagFlag(c->tag); + if(c->screen == selscreen) + occupied |= TagFlag(c->tag); for(tag = seltag[selscreen] + 1; tag < conf.ntag[selscreen] + 1; ++tag) if(occupied & TagFlag(tag)) @@ -266,7 +267,7 @@ uicb_tag_prev_visible(uicb_t cmd) { int tag; Client *c; - uint occupied; + uint occupied = 0; (void)cmd; screen_get_sel(); @@ -278,7 +279,8 @@ uicb_tag_prev_visible(uicb_t cmd) } for(c = clients; c; c = c->next) - occupied |= TagFlag(c->tag); + if(c->screen == selscreen) + occupied |= TagFlag(c->tag); for(tag = seltag[selscreen] - 1; tag >= 0; --tag) if(occupied & TagFlag(tag))