Tag: Add tag_swap and uicb function: tag_swap with cmd = <tag>, tag_swap_next & tag_swap_prev
This commit is contained in:
parent
8c0e37cb38
commit
0f25f75f0d
@ -218,7 +218,8 @@ barwin_unmap_subwin(BarWindow *bw)
|
||||
void
|
||||
barwin_move(BarWindow *bw, int x, int y)
|
||||
{
|
||||
CHECK(bw);
|
||||
if(!bw || (bw->geo.x == x && bw->geo.y == y))
|
||||
return;
|
||||
|
||||
XMoveWindow(dpy, bw->win, (bw->geo.x = x), (bw->geo.y = y));
|
||||
|
||||
@ -233,7 +234,8 @@ barwin_move(BarWindow *bw, int x, int y)
|
||||
void
|
||||
barwin_resize(BarWindow *bw, uint w, uint h)
|
||||
{
|
||||
CHECK(bw);
|
||||
if(!bw || (bw->geo.width == w && bw->geo.height == h))
|
||||
return;
|
||||
|
||||
bw->geo.width = w;
|
||||
bw->geo.height = h;
|
||||
|
||||
@ -56,6 +56,9 @@ func_name_list_t tmp_func_list[] =
|
||||
{"tag_transfert_prev", uicb_tagtransfert_prev },
|
||||
{"tag_urgent", uicb_tag_urgent },
|
||||
{"tag_toggle_additional", uicb_tag_toggle_additional },
|
||||
{"tag_swap", uicb_tag_swap },
|
||||
{"tag_swap_next", uicb_tag_swap_next },
|
||||
{"tag_swap_prev", uicb_tag_swap_previous },
|
||||
{"set_mwfact", uicb_set_mwfact },
|
||||
{"set_nmaster", uicb_set_nmaster },
|
||||
{"quit", uicb_quit },
|
||||
|
||||
@ -219,7 +219,7 @@ infobar_draw_selbar(int sc)
|
||||
void
|
||||
infobar_draw_taglist(int sc)
|
||||
{
|
||||
int i, x;
|
||||
int i, x, j;
|
||||
Client *c;
|
||||
Bool is_occupied[MAXTAG];
|
||||
|
||||
@ -233,9 +233,8 @@ infobar_draw_taglist(int sc)
|
||||
if(c->screen == sc)
|
||||
is_occupied[c->tag] = True;
|
||||
|
||||
for(i = 1, x = 0; i < conf.ntag[sc] + 1; ++i)
|
||||
for(i = 1, x = j = 0; i < conf.ntag[sc] + 1; ++i)
|
||||
{
|
||||
|
||||
/* Autohide tag feature */
|
||||
if(conf.tagautohide)
|
||||
{
|
||||
|
||||
69
src/tag.c
69
src/tag.c
@ -296,5 +296,74 @@ uicb_tag_toggle_additional(uicb_t cmd)
|
||||
return;
|
||||
}
|
||||
|
||||
/** Swap 2 tags
|
||||
*\param s Screen
|
||||
*\param t1 Tag 1
|
||||
*\param t2 Tag 2
|
||||
*/
|
||||
void
|
||||
tag_swap(int s, int t1, int t2)
|
||||
{
|
||||
Tag t;
|
||||
int i, j;
|
||||
|
||||
if(t1 > conf.ntag[s] || t1 < 0
|
||||
|| t2 > conf.ntag[s] || t2 < 0 || t1 == t2)
|
||||
return;
|
||||
|
||||
t = tags[s][t1];
|
||||
tags[s][t1] = tags[s][t2];
|
||||
tags[s][t2] = t;
|
||||
|
||||
/* Adapt tags buttons */
|
||||
for(i = 1, j = 0; i < conf.ntag[s] + 1; ++i)
|
||||
{
|
||||
barwin_move(infobar[s].tags[i], j, 0);
|
||||
j += textw(tags[s][i].name) + PAD;
|
||||
barwin_resize(infobar[s].tags[i], textw(tags[s][i].name) + PAD, infobar[s].geo.height);
|
||||
barwin_resize(infobar[s].tags_board, j, infobar[s].geo.height);
|
||||
}
|
||||
|
||||
tag_set(t2);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** Swap current tag with a specified tag
|
||||
*\param cmd uicb_t type
|
||||
*/
|
||||
void
|
||||
uicb_tag_swap(uicb_t cmd)
|
||||
{
|
||||
screen_get_sel();
|
||||
|
||||
tag_swap(selscreen, seltag[selscreen], atoi(cmd));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** Swap current tag with next tag
|
||||
*\param cmd uicb_t type
|
||||
*/
|
||||
void
|
||||
uicb_tag_swap_next(uicb_t cmd)
|
||||
{
|
||||
screen_get_sel();
|
||||
|
||||
tag_swap(selscreen, seltag[selscreen], seltag[selscreen] + 1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** Swap current tag with previous tag
|
||||
*\param cmd uicb_t type
|
||||
*/
|
||||
void
|
||||
uicb_tag_swap_previous(uicb_t cmd)
|
||||
{
|
||||
screen_get_sel();
|
||||
|
||||
tag_swap(selscreen, seltag[selscreen], seltag[selscreen] - 1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -284,7 +284,6 @@ char *clean_value(char *str);
|
||||
int parse_image_block(ImageAttr *im, char *str);
|
||||
#endif /* HAVE_IMLIB */
|
||||
|
||||
|
||||
/* tag.c */
|
||||
void tag_set(int tag);
|
||||
void tag_transfert(Client *c, int tag);
|
||||
@ -297,8 +296,11 @@ void uicb_tagtransfert_next(uicb_t);
|
||||
void uicb_tagtransfert_prev(uicb_t);
|
||||
void uicb_tag_urgent(uicb_t cmd);
|
||||
void tag_additional(int sc, int tag, int adtag);
|
||||
void uicb_tag_toggle_additional(uicb_t cmd);
|
||||
|
||||
void uicb_tag_toggle_additional(uicb_t);
|
||||
void tag_swap(int s, int t1, int t2);
|
||||
void uicb_tag_swap(uicb_t);
|
||||
void uicb_tag_swap_next(uicb_t);
|
||||
void uicb_tag_swap_previous(uicb_t);
|
||||
|
||||
/* screen.c */
|
||||
int screen_count(void);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user