From 2abf2ea65172a29e188498e8e774d1e9587de7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Anger?= Date: Thu, 12 Apr 2012 22:59:55 +0200 Subject: [PATCH] move clients on tag change if they ignore tags --- src/tag.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tag.c b/src/tag.c index a9c9d06..2649fa9 100644 --- a/src/tag.c +++ b/src/tag.c @@ -46,6 +46,8 @@ tag_new(struct screen *s, char *name) void tag_screen(struct screen *s, struct tag *t) { + struct client *c; + if(t == s->seltag && TAILQ_NEXT(TAILQ_FIRST(&s->tags), next)) t = t->prev; @@ -55,6 +57,10 @@ tag_screen(struct screen *s, struct tag *t) t->prev = s->seltag; s->seltag = t; + /* Move clients if they ignore tags */ + SLIST_FOREACH(c, &W->h.client, next) + if (c->flags & CLIENT_IGNORE_TAG) + tag_client(c->screen->seltag, c); clients_arrange_map(); if(!SLIST_EMPTY(&t->clients) && !(W->flags & WMFS_SCAN))