diff options
Diffstat (limited to 'dwm.c')
-rw-r--r-- | dwm.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -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 |