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
|
void
|
||||||
barwin_move(BarWindow *bw, int x, int y)
|
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));
|
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
|
void
|
||||||
barwin_resize(BarWindow *bw, uint w, uint h)
|
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.width = w;
|
||||||
bw->geo.height = h;
|
bw->geo.height = h;
|
||||||
|
|||||||
@ -56,6 +56,9 @@ func_name_list_t tmp_func_list[] =
|
|||||||
{"tag_transfert_prev", uicb_tagtransfert_prev },
|
{"tag_transfert_prev", uicb_tagtransfert_prev },
|
||||||
{"tag_urgent", uicb_tag_urgent },
|
{"tag_urgent", uicb_tag_urgent },
|
||||||
{"tag_toggle_additional", uicb_tag_toggle_additional },
|
{"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_mwfact", uicb_set_mwfact },
|
||||||
{"set_nmaster", uicb_set_nmaster },
|
{"set_nmaster", uicb_set_nmaster },
|
||||||
{"quit", uicb_quit },
|
{"quit", uicb_quit },
|
||||||
|
|||||||
@ -219,7 +219,7 @@ infobar_draw_selbar(int sc)
|
|||||||
void
|
void
|
||||||
infobar_draw_taglist(int sc)
|
infobar_draw_taglist(int sc)
|
||||||
{
|
{
|
||||||
int i, x;
|
int i, x, j;
|
||||||
Client *c;
|
Client *c;
|
||||||
Bool is_occupied[MAXTAG];
|
Bool is_occupied[MAXTAG];
|
||||||
|
|
||||||
@ -233,9 +233,8 @@ infobar_draw_taglist(int sc)
|
|||||||
if(c->screen == sc)
|
if(c->screen == sc)
|
||||||
is_occupied[c->tag] = True;
|
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 */
|
/* Autohide tag feature */
|
||||||
if(conf.tagautohide)
|
if(conf.tagautohide)
|
||||||
{
|
{
|
||||||
|
|||||||
69
src/tag.c
69
src/tag.c
@ -296,5 +296,74 @@ uicb_tag_toggle_additional(uicb_t cmd)
|
|||||||
return;
|
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);
|
int parse_image_block(ImageAttr *im, char *str);
|
||||||
#endif /* HAVE_IMLIB */
|
#endif /* HAVE_IMLIB */
|
||||||
|
|
||||||
|
|
||||||
/* tag.c */
|
/* tag.c */
|
||||||
void tag_set(int tag);
|
void tag_set(int tag);
|
||||||
void tag_transfert(Client *c, 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_tagtransfert_prev(uicb_t);
|
||||||
void uicb_tag_urgent(uicb_t cmd);
|
void uicb_tag_urgent(uicb_t cmd);
|
||||||
void tag_additional(int sc, int tag, int adtag);
|
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 */
|
/* screen.c */
|
||||||
int screen_count(void);
|
int screen_count(void);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user