Tag: Add uicb_tag_urgent to go to urgent tag (Feature #37 request bien Erus)

This commit is contained in:
Martin Duquesnoy 2010-04-06 01:33:18 +02:00
parent b38db34de5
commit 6f82c73409
4 changed files with 32 additions and 3 deletions

View File

@ -57,6 +57,7 @@ func_name_list_t tmp_func_list[] =
{"tag_transfert", uicb_tagtransfert },
{"tag_transfert_next", uicb_tagtransfert_next },
{"tag_transfert_prev", uicb_tagtransfert_prev },
{"tag_urgent", uicb_tag_urgent },
{"set_mwfact", uicb_set_mwfact },
{"set_nmaster", uicb_set_nmaster },
{"quit", uicb_quit },

View File

@ -466,7 +466,7 @@ propertynotify(XPropertyEvent *ev)
{
switch(ev->atom)
{
case XA_WM_TRANSIENT_FOR:
case XA_WM_TRANSIENT_FOR:
XGetTransientForHint(dpy, c->win, &trans);
if((c->flags & TileFlag || c->flags & MaxFlag))
if(((c->flags & HintFlag && (client_gb_win(trans) != NULL)))
@ -491,10 +491,10 @@ propertynotify(XPropertyEvent *ev)
client_get_name(c);
break;
default:
if(ev->atom == net_atom[net_wm_name])
client_get_name(c);
break;
}
if(ev->atom == net_atom[net_wm_name])
client_get_name(c);
}
return;

View File

@ -223,3 +223,30 @@ uicb_tagtransfert_prev(uicb_t cmd)
return;
}
/** Go to the current urgent tag
*\param cmd uicb_t type unused
*/
void
uicb_tag_urgent(uicb_t cmd)
{
Client *c;
Bool b = False;
/* Check if there is a urgent client */
for(c = clients; c; c = c->next)
if(c->flags & UrgentFlag)
{
b = True;
break;
}
if(!b)
return;
screen_set_sel(c->screen);
tag_set(c->tag);
client_focus(c);
return;
}

View File

@ -288,6 +288,7 @@ void uicb_tagtransfert(uicb_t);
void uicb_tag_prev_sel(uicb_t);
void uicb_tagtransfert_next(uicb_t);
void uicb_tagtransfert_prev(uicb_t);
void uicb_tag_urgent(uicb_t cmd);
/* screen.c */
int screen_count(void);