Browse Source

moved transient_for tag inheritance to settags

config
Anselm R. Garbe 18 years ago
parent
commit
aaad7bfd15
3 changed files with 10 additions and 10 deletions
  1. +2
    -6
      client.c
  2. +1
    -1
      dwm.h
  3. +7
    -3
      tag.c

+ 2
- 6
client.c View File

@ -199,7 +199,7 @@ void
manage(Window w, XWindowAttributes *wa) manage(Window w, XWindowAttributes *wa)
{ {
unsigned int i; unsigned int i;
Client *c, *tc;
Client *c;
Window trans; Window trans;
XSetWindowAttributes twa; XSetWindowAttributes twa;
@ -238,11 +238,7 @@ manage(Window w, XWindowAttributes *wa)
CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa);
grabbuttons(c, False); 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) if(!c->isfloat)
c->isfloat = trans c->isfloat = trans
|| (c->maxw && c->minw && || (c->maxw && c->minw &&


+ 1
- 1
dwm.h View File

@ -115,7 +115,7 @@ extern int xerror(Display *dsply, XErrorEvent *ee);
extern void initrregs(); extern void initrregs();
extern Client *getnext(Client *c); extern Client *getnext(Client *c);
extern Client *getprev(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 tag(Arg *arg);
extern void toggletag(Arg *arg); extern void toggletag(Arg *arg);


+ 7
- 3
tag.c View File

@ -76,15 +76,19 @@ initrregs()
} }
void void
settags(Client *c)
settags(Client *c, Client *trans)
{ {
char prop[512]; char prop[512];
unsigned int i, j; unsigned int i, j;
regmatch_t tmp; regmatch_t tmp;
Bool matched = False;
Bool matched = trans != NULL;
XClassHint ch; 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", snprintf(prop, sizeof(prop), "%s:%s:%s",
ch.res_class ? ch.res_class : "", ch.res_class ? ch.res_class : "",
ch.res_name ? ch.res_name : "", c->name); ch.res_name ? ch.res_name : "", c->name);


Loading…
Cancel
Save