Infobar: Add toggle_tagautohide uicb function.

This commit is contained in:
OldMan 2010-04-20 20:11:59 +06:00
parent 7119d3cc25
commit 236b86ff0a
4 changed files with 36 additions and 1 deletions

View File

@ -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[] =

View File

@ -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;
}

View File

@ -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);

View File

@ -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]