moved transient_for tag inheritance to settags
This commit is contained in:
parent
0915da8842
commit
aaad7bfd15
8
client.c
8
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 &&
|
||||
|
|
2
dwm.h
2
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);
|
||||
|
||||
|
|
10
tag.c
10
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);
|
||||
|
|
Loading…
Reference in a new issue