From 06cca7b4134bdd0b609e9f6a9946a4da243017df Mon Sep 17 00:00:00 2001 From: Martin Duquesnoy Date: Thu, 2 Feb 2012 15:19:57 +0100 Subject: [PATCH] Avoid prev tag action at tag_screen for last tag --- src/tag.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/tag.c b/src/tag.c index 129ee1f..745d7c5 100644 --- a/src/tag.c +++ b/src/tag.c @@ -35,6 +35,8 @@ tag_new(struct screen *s, char *name) else t->name = xstrdup(name); + printf("->t->name <%s>\n", t->name); + SLIST_INIT(&t->clients); TAILQ_INIT(&t->sets); @@ -46,7 +48,7 @@ tag_new(struct screen *s, char *name) void tag_screen(struct screen *s, struct tag *t) { - if(t == s->seltag) + if(t == s->seltag && TAILQ_NEXT(t, next)) t = t->prev; if(!t) @@ -256,11 +258,7 @@ uicb_tag_del(Uicb cmd) if(SLIST_EMPTY(&t->clients) && TAILQ_NEXT(TAILQ_FIRST(&W->screen->tags), next)) { - struct tag *n = (TAILQ_NEXT(t, next) - ? TAILQ_NEXT(t, next) - : TAILQ_FIRST(&W->screen->tags)); - - tag_screen(W->screen, n); + tag_screen(W->screen, TAILQ_NEXT(t, next)); tag_remove(t); W->screen->flags |= SCREEN_TAG_UPDATE;