From 236b86ff0a6bb590cee95fe2f547e24faab5418c Mon Sep 17 00:00:00 2001 From: OldMan Date: Tue, 20 Apr 2010 20:11:59 +0600 Subject: [PATCH] Infobar: Add toggle_tagautohide uicb function. --- src/config.c | 3 ++- src/infobar.c | 30 ++++++++++++++++++++++++++++++ src/wmfs.h | 1 + wmfsrc.in | 3 +++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/config.c b/src/config.c index 8065b9e..dcfd5b0 100644 --- a/src/config.c +++ b/src/config.c @@ -86,7 +86,8 @@ func_name_list_t tmp_func_list[] = {"check_free", uicb_checkfree }, {"check_layout", uicb_checklayout }, {"clientlist", uicb_clientlist }, - {"check_clist", uicb_checkclist } + {"check_clist", uicb_checkclist }, + {"toggle_tagautohide", uicb_toggle_tagautohide } }; key_name_list_t key_list[] = diff --git a/src/infobar.c b/src/infobar.c index 2919818..e7ef142 100644 --- a/src/infobar.c +++ b/src/infobar.c @@ -399,3 +399,33 @@ uicb_infobar_togglepos(uicb_t cmd) return; } + +/** Toggle the tag_autohide mode + * \param cmd uicb_t type unused +*/ +void +uicb_toggle_tagautohide(uicb_t cmd) +{ + int i, x; + + screen_get_sel(); + conf.tagautohide = !conf.tagautohide; + + if(!conf.tagautohide) + { + for(i = 1, x = 0; i < conf.ntag[selscreen] + 1; ++i) + { + if(!infobar[selscreen].tags[i]->mapped) + barwin_map(infobar[selscreen].tags[i]); + + barwin_move(infobar[selscreen].tags[i], x, 0); + x += infobar[selscreen].tags[i]->geo.width; + } + + barwin_resize(infobar[selscreen].tags_board, x, infobar[selscreen].geo.height); + } + + infobar_draw_taglist(selscreen); + + return; +} diff --git a/src/wmfs.h b/src/wmfs.h index 1ea6577..aab7ff7 100644 --- a/src/wmfs.h +++ b/src/wmfs.h @@ -152,6 +152,7 @@ void infobar_update_taglist(int sc); void infobar_destroy(void); void infobar_set_position(int pos); void uicb_infobar_togglepos(uicb_t); +void uicb_toggle_tagautohide(uicb_t); /* client.c */ void client_attach(Client *c); diff --git a/wmfsrc.in b/wmfsrc.in index 436da40..cd7b474 100644 --- a/wmfsrc.in +++ b/wmfsrc.in @@ -250,6 +250,9 @@ # Toggle the resizehint of the current tag/screen [key] mod = {"Shift", "Control"} key = "r" func = "toggle_resizehint" [/key] + # Toggle the tag_autohide mode + [key] mod = {"Shift", "Control"} key = "t" func = "toggle_tagautohide" [/key] + # Select the next client. [key] mod = {"Alt"} key = "Tab" func = "client_next" [/key]