URI: 
       moved transient_for tag inheritance to settags - dwm - dynamic window manager
  HTML git clone https://git.parazyd.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit aaad7bfd15a023ab693bb17e2974b57cae7e7e21
   DIR parent 0915da8842fd6e16b804ae3205ec2f6baaaa342c
  HTML Author: Anselm R. Garbe <arg@10kloc.org>
       Date:   Wed,  6 Sep 2006 09:21:17 +0200
       
       moved transient_for tag inheritance to settags
       Diffstat:
         M client.c                            |       8 ++------
         M dwm.h                               |       2 +-
         M tag.c                               |      10 +++++++---
       
       3 files changed, 10 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/client.c b/client.c
       @@ -199,7 +199,7 @@ void
        manage(Window w, XWindowAttributes *wa)
        {
                unsigned int i;
       -        Client *c, *tc;
       +        Client *c;
                Window trans;
                XSetWindowAttributes twa;
        
       @@ -238,11 +238,7 @@ manage(Window w, XWindowAttributes *wa)
                                CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa);
        
                grabbuttons(c, False);
       -        if((tc = getclient(trans))) /* inherit tags */
       -                for(i = 0; i < ntags; i++)
       -                        c->tags[i] = tc->tags[i];
       -        else
       -                settags(c);
       +        settags(c, getclient(trans));
                if(!c->isfloat)
                        c->isfloat = trans
                                || (c->maxw && c->minw &&
   DIR diff --git a/dwm.h b/dwm.h
       @@ -115,7 +115,7 @@ extern int xerror(Display *dsply, XErrorEvent *ee);
        extern void initrregs();
        extern Client *getnext(Client *c);
        extern Client *getprev(Client *c);
       -extern void settags(Client *c);
       +extern void settags(Client *c, Client *trans);
        extern void tag(Arg *arg);
        extern void toggletag(Arg *arg);
        
   DIR diff --git a/tag.c b/tag.c
       @@ -76,15 +76,19 @@ initrregs()
        }
        
        void
       -settags(Client *c)
       +settags(Client *c, Client *trans)
        {
                char prop[512];
                unsigned int i, j;
                regmatch_t tmp;
       -        Bool matched = False;
       +        Bool matched = trans != NULL;
                XClassHint ch;
        
       -        if(XGetClassHint(dpy, c->win, &ch)) {
       +        if(matched) {
       +                for(i = 0; i < ntags; i++)
       +                        c->tags[i] = trans->tags[i];
       +        }
       +        else if(XGetClassHint(dpy, c->win, &ch)) {
                        snprintf(prop, sizeof(prop), "%s:%s:%s",
                                        ch.res_class ? ch.res_class : "",
                                        ch.res_name ? ch.res_name : "", c->name);