From 87a41561e737c5ebc275a96a7faa28de406faa6b Mon Sep 17 00:00:00 2001 From: Martin Duquesnoy Date: Wed, 7 Apr 2010 00:57:39 +0200 Subject: [PATCH] Tag: Fix layout update in case of additional tag in tag_set --- src/tag.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/tag.c b/src/tag.c index 5194562..59feacb 100644 --- a/src/tag.c +++ b/src/tag.c @@ -39,6 +39,8 @@ void tag_set(int tag) { Client *c; + Bool al = False; + int i; screen_get_sel(); @@ -68,7 +70,16 @@ tag_set(int tag) if(tags[selscreen][prevseltag[selscreen]].barpos != tags[selscreen][seltag[selscreen]].barpos) infobar_set_position(tags[selscreen][seltag[selscreen]].barpos); - arrange(selscreen, False); + + /* Check if a layout update is needed with additional tags */ + if(tags[selscreen][seltag[selscreen]].tagad) + al = True; + + for(i = 1; i < conf.ntag[selscreen] + 1; ++i) + if(tags[selscreen][i].tagad & TagFlag(seltag[selscreen])) + al = True; + + arrange(selscreen, al); if(tags[selscreen][tag].request_update) { @@ -251,7 +262,7 @@ uicb_tag_urgent(uicb_t cmd) return; } -/** Add a additional tag to the current tag +/** Add an additional tag to the current tag *\param sc Screen *\param tag Tag where apply additional tag *\param adtag Additional tag to apply in tag @@ -270,7 +281,7 @@ tag_additional(int sc, int tag, int adtag) return; } -/** Add a additional tag to the current tag +/** Add an additional tag to the current tag *\param cmd uicb_t */ void