This is for version 6.2 btw.

On Fri, Mar 29, 2019 at 10:42 AM Ryan Kes <[email protected]> wrote:

> ---
>  dwm.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/dwm.c b/dwm.c
> index 4465af1..218e516 100644
> --- a/dwm.c
> +++ b/dwm.c
> @@ -416,7 +416,7 @@ attachstack(Client *c)
>  void
>  buttonpress(XEvent *e)
>  {
> -       unsigned int i, x, click;
> +       unsigned int i, x, click, occ = 0;
>         Arg arg = {0};
>         Client *c;
>         Monitor *m;
> @@ -431,9 +431,13 @@ buttonpress(XEvent *e)
>         }
>         if (ev->window == selmon->barwin) {
>                 i = x = 0;
> -               do
> +               for (c = m->clients; c; c = c->next)
> +                       occ |= c->tags == 255 ? 0 : c->tags;
> +               do {
> +                       if (!(occ & 1 << i || m->tagset[m->seltags] & 1 <<
> i))
> +                               continue;
>                         x += TEXTW(tags[i]);
> -               while (ev->x >= x && ++i < LENGTH(tags));
> +               } while (ev->x >= x && ++i < LENGTH(tags));
>                 if (i < LENGTH(tags)) {
>                         click = ClkTagBar;
>                         arg.ui = 1 << i;
> @@ -709,19 +713,17 @@ drawbar(Monitor *m)
>         }
>
>         for (c = m->clients; c; c = c->next) {
> -               occ |= c->tags;
> +               occ |= c->tags == 255 ? 0 : c->tags;
>                 if (c->isurgent)
>                         urg |= c->tags;
>         }
>         x = 0;
>         for (i = 0; i < LENGTH(tags); i++) {
> +               if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
> +                       continue;
>                 w = TEXTW(tags[i]);
>                 drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ?
> SchemeSel : SchemeNorm]);
>                 drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 <<
> i);
> -               if (occ & 1 << i)
> -                       drw_rect(drw, x + boxs, boxs, boxw, boxw,
> -                               m == selmon && selmon->sel &&
> selmon->sel->tags & 1 << i,
> -                               urg & 1 << i);
>                 x += w;
>         }
>         w = blw = TEXTW(m->ltsymbol);
> --
> 2.21.0
>
>

Reply via email to