From 3b1526ea5b4d84ef56088d6246f9bb5caa88b807 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Thu, 17 Jan 2008 18:43:55 +0100 Subject: [PATCH] store screen in tag --- structs.h | 2 ++ tag.c | 32 +++++++++++++++++--------------- tag.h | 2 +- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/structs.h b/structs.h index cd49d8da..4a5d955b 100644 --- a/structs.h +++ b/structs.h @@ -206,6 +206,8 @@ struct Tag { /** Tag name */ char *name; + /** Screen */ + int screen; /** True if selected */ Bool selected; /** True if was selected before selecting others tags */ diff --git a/tag.c b/tag.c index ca8f2332..dea918fe 100644 --- a/tag.c +++ b/tag.c @@ -50,6 +50,7 @@ tag_new(const char *name, Layout *layout, double mwfact, int nmaster, int ncol) static void tag_append_to_screen(Tag *tag, int screen) { + tag->screen = screen; tag_list_append(&globalconf.screens[screen].tags, tag); widget_invalidate_cache(screen, WIDGET_CACHE_TAGS); } @@ -57,6 +58,7 @@ tag_append_to_screen(Tag *tag, int screen) void tag_push_to_screen(Tag *tag, int screen) { + tag->screen = screen; tag_list_push(&globalconf.screens[screen].tags, tag); widget_invalidate_cache(screen, WIDGET_CACHE_TAGS); } @@ -286,16 +288,16 @@ uicb_tag_toggleview(int screen, char *arg) } static void -tag_view_only(Tag *target, int screen) +tag_view_only(Tag *target) { Tag *tag; if(!target) return; - for(tag = globalconf.screens[screen].tags; tag; tag = tag->next) - tag_view(tag, False, screen); + for(tag = globalconf.screens[target->screen].tags; tag; tag = tag->next) + tag_view(tag, False); - tag_view(target, True, screen); + tag_view(target, True); } void @@ -308,16 +310,16 @@ tag_view_only_byindex(int screen, int dindex) for(tag = globalconf.screens[screen].tags; tag && dindex > 0; tag = tag->next, dindex--); - tag_view_only(tag, screen); + tag_view_only(tag); } void -tag_view(Tag *tag, Bool view, int screen) +tag_view(Tag *tag, Bool view) { tag->selected = view; - ewmh_update_net_current_desktop(get_phys_screen(screen)); - widget_invalidate_cache(screen, WIDGET_CACHE_TAGS); - saveawesomeprops(screen); + ewmh_update_net_current_desktop(get_phys_screen(tag->screen)); + widget_invalidate_cache(tag->screen, WIDGET_CACHE_TAGS); + saveawesomeprops(tag->screen); } /** View tag @@ -334,7 +336,7 @@ uicb_tag_view(int screen, char *arg) tag_view_only_byindex(screen, atoi(arg) - 1); else for(tag = globalconf.screens[screen].tags; tag; tag = tag->next) - tag_view(tag, True, screen); + tag_view(tag, True); arrange(screen); } @@ -353,7 +355,7 @@ uicb_tag_prev_selected(int screen, char *arg __attribute__ ((unused))) for(tag = globalconf.screens[screen].tags; tag; tag = tag->next) { t = tag->selected; - tag_view(tag, tag->was_selected, screen); + tag_view(tag, tag->was_selected); tag->was_selected = t; } @@ -375,8 +377,8 @@ uicb_tag_viewnext(int screen, char *arg __attribute__ ((unused))) else tag = globalconf.screens[screen].tags; - tag_view(curtags[0], False, screen); - tag_view(tag, True, screen); + tag_view(curtags[0], False); + tag_view(tag, True); p_delete(&curtags); arrange(screen); @@ -394,8 +396,8 @@ uicb_tag_viewprev(int screen, char *arg __attribute__ ((unused))) tag = tag_list_prev_cycle(&globalconf.screens[screen].tags, curtags[0]); - tag_view(curtags[0], False, screen); - tag_view(tag, True, screen); + tag_view(curtags[0], False); + tag_view(tag, True); p_delete(&curtags); arrange(screen); diff --git a/tag.h b/tag.h index d1e7d690..f3d9bb48 100644 --- a/tag.h +++ b/tag.h @@ -28,7 +28,7 @@ #define IS_TILED(client, screen) (client && !client->isfloating && client_isvisible(client, screen)) Tag * tag_new(const char *, Layout *, double, int, int); -void tag_view(Tag *, Bool, int); +void tag_view(Tag *, Bool); void tag_push_to_screen(Tag *, int); Tag ** get_current_tags(int); void tag_client(Client *, Tag *); -- 2.11.4.GIT