aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client.c8
-rw-r--r--dwm.h2
-rw-r--r--tag.c10
3 files changed, 10 insertions, 10 deletions
diff --git a/client.c b/client.c
index 4f2a69c..586a87f 100644
--- 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 &&
diff --git a/dwm.h b/dwm.h
index 9f1e7bf..eba3a6a 100644
--- 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);
diff --git a/tag.c b/tag.c
index 9e997f9..fafc2c5 100644
--- 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);
remember that computers suck.