aboutsummaryrefslogtreecommitdiffstats
path: root/dwm.c
diff options
context:
space:
mode:
Diffstat (limited to 'dwm.c')
-rw-r--r--dwm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/dwm.c b/dwm.c
index a875204..f11433d 100644
--- a/dwm.c
+++ b/dwm.c
@@ -93,6 +93,7 @@ struct Client {
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
int bw, oldbw;
unsigned int tags;
+ unsigned int switchtotag;
int isfixed, isfloating, isfreesize, isurgent, neverfocus, oldstate, isfullscreen;
Client *next;
Client *snext;
@@ -140,6 +141,7 @@ typedef struct {
const char *instance;
const char *title;
unsigned int tags;
+ unsigned int switchtotag;
int isfloating;
int isfreesize;
int monitor;
@@ -353,6 +355,11 @@ applyrules(Client *c)
for (m = mons; m && m->num != r->monitor; m = m->next);
if (m)
c->mon = m;
+ if (r->switchtotag) {
+ Arg a = { .ui = r->tags };
+ c->switchtotag = selmon->tagset[selmon->seltags];
+ view(&a);
+ }
}
}
if (ch.res_class)
@@ -2103,6 +2110,10 @@ unmanage(Client *c, int destroyed)
focus(NULL);
updateclientlist();
arrange(m);
+ if (c->switchtotag) {
+ Arg a = { .ui = c->switchtotag };
+ view(&a);
+ }
}
void