Tag/Clients: Add client_ignore tag option (~Feature #6 requested by Elpinoutoufou)
This commit is contained in:
parent
46608a14be
commit
f8115d686d
22
src/client.c
22
src/client.c
@ -435,7 +435,7 @@ client_hide(Client *c)
|
|||||||
Bool
|
Bool
|
||||||
ishide(Client *c, int screen)
|
ishide(Client *c, int screen)
|
||||||
{
|
{
|
||||||
if((c->tag == seltag[screen] && c->screen == screen)
|
if(((c->tag == seltag[screen] || c->tag == MAXTAG + 1) && c->screen == screen)
|
||||||
|| tags[screen][seltag[screen]].tagad & TagFlag(c->tag))
|
|| tags[screen][seltag[screen]].tagad & TagFlag(c->tag))
|
||||||
return False;
|
return False;
|
||||||
|
|
||||||
@ -703,7 +703,8 @@ client_moveresize(Client *c, XRectangle geo, Bool r)
|
|||||||
if(c->flags & FreeFlag || tags[c->screen][c->tag].layout.func == freelayout)
|
if(c->flags & FreeFlag || tags[c->screen][c->tag].layout.func == freelayout)
|
||||||
c->free_geo = geo;
|
c->free_geo = geo;
|
||||||
|
|
||||||
if((c->screen = screen_get_with_geo(c->geo.x, c->geo.y)) != os)
|
if((c->screen = screen_get_with_geo(c->geo.x, c->geo.y)) != os
|
||||||
|
&& c->tag != MAXTAG + 1)
|
||||||
c->tag = seltag[c->screen];
|
c->tag = seltag[c->screen];
|
||||||
|
|
||||||
frame_moveresize(c, c->geo);
|
frame_moveresize(c, c->geo);
|
||||||
@ -1256,3 +1257,20 @@ uicb_checkclist(uicb_t cmd)
|
|||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Set selected client on all tag (ignore tags
|
||||||
|
*\para cmd uicb_t type unused
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
uicb_client_ignore_tag(uicb_t cmd)
|
||||||
|
{
|
||||||
|
CHECK(sel);
|
||||||
|
|
||||||
|
screen_get_sel();
|
||||||
|
|
||||||
|
sel->tag = ((sel->tag == MAXTAG + 1) ? seltag[selscreen] : MAXTAG + 1);
|
||||||
|
|
||||||
|
arrange(sel->screen, True);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -44,6 +44,7 @@ func_name_list_t tmp_func_list[] =
|
|||||||
{"client_screen_prev", uicb_client_screen_prev },
|
{"client_screen_prev", uicb_client_screen_prev },
|
||||||
{"client_move", uicb_client_move },
|
{"client_move", uicb_client_move },
|
||||||
{"client_resize", uicb_client_resize },
|
{"client_resize", uicb_client_resize },
|
||||||
|
{"client_ignore_tag", uicb_client_ignore_tag },
|
||||||
{"toggle_max", uicb_togglemax },
|
{"toggle_max", uicb_togglemax },
|
||||||
{"layout_next", uicb_layout_next },
|
{"layout_next", uicb_layout_next },
|
||||||
{"layout_prev", uicb_layout_prev },
|
{"layout_prev", uicb_layout_prev },
|
||||||
|
|||||||
11
src/tag.c
11
src/tag.c
@ -76,7 +76,18 @@ tag_set(int tag)
|
|||||||
|
|
||||||
for(i = 1; i < conf.ntag[selscreen] + 1; ++i)
|
for(i = 1; i < conf.ntag[selscreen] + 1; ++i)
|
||||||
if(tags[selscreen][i].tagad & TagFlag(seltag[selscreen]))
|
if(tags[selscreen][i].tagad & TagFlag(seltag[selscreen]))
|
||||||
|
{
|
||||||
al = True;
|
al = True;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check for ignore_tag clients */
|
||||||
|
for(c = clients; c; c = c->next)
|
||||||
|
if(c->tag == MAXTAG + 1 && c->screen == selscreen)
|
||||||
|
{
|
||||||
|
al = True;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
arrange(selscreen, al);
|
arrange(selscreen, al);
|
||||||
|
|
||||||
|
|||||||
@ -241,7 +241,7 @@ scan(void)
|
|||||||
|
|
||||||
c = client_manage(w[i], &wa, False);
|
c = client_manage(w[i], &wa, False);
|
||||||
|
|
||||||
if(tag != -1)
|
if(tag != -1 && tag != MAXTAG + 1)
|
||||||
c->tag = tag;
|
c->tag = tag;
|
||||||
if(screen != -1 && screen <= s - 1)
|
if(screen != -1 && screen <= s - 1)
|
||||||
c->screen = screen;
|
c->screen = screen;
|
||||||
|
|||||||
@ -201,6 +201,7 @@ void uicb_ignore_next_client_rules(uicb_t cmd);
|
|||||||
void uicb_clientlist(uicb_t cmd);
|
void uicb_clientlist(uicb_t cmd);
|
||||||
void uicb_client_select(uicb_t cmd);
|
void uicb_client_select(uicb_t cmd);
|
||||||
Bool uicb_checkclist(uicb_t);
|
Bool uicb_checkclist(uicb_t);
|
||||||
|
void uicb_client_ignore_tag(uicb_t);
|
||||||
|
|
||||||
/* ewmh.c */
|
/* ewmh.c */
|
||||||
void ewmh_init_hints(void);
|
void ewmh_init_hints(void);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user