Client: Add ignore_next_client_rules uicb function requested by Armael.

This commit is contained in:
Martin Duquesnoy 2010-03-25 19:40:21 +01:00
parent c5da009b7a
commit 06a9c44792
4 changed files with 63 additions and 42 deletions

View File

@ -837,6 +837,12 @@ client_set_wanted_tag(Client *c)
XClassHint xch = { 0 }; XClassHint xch = { 0 };
int i, j, k; int i, j, k;
if(conf.ignore_next_client_rules)
{
conf.ignore_next_client_rules = False;
return;
}
XGetClassHint(dpy, c->win, &xch); XGetClassHint(dpy, c->win, &xch);
for(i = 0; i < screen_count(); ++i) for(i = 0; i < screen_count(); ++i)
@ -1130,3 +1136,16 @@ uicb_client_resize(uicb_t cmd)
return; return;
} }
/** Ignore next client rules
*\param cmd uicb_t type
*/
void
uicb_ignore_next_client_rules(uicb_t cmd)
{
conf.ignore_next_client_rules = !conf.ignore_next_client_rules;
return;
}

View File

@ -37,48 +37,47 @@ static void conf_section(void (*)(char*), char *, char *);
func_name_list_t tmp_func_list[] = func_name_list_t tmp_func_list[] =
{ {
{"spawn", uicb_spawn }, {"spawn", uicb_spawn },
{"client_kill", uicb_client_kill }, {"client_kill", uicb_client_kill },
{"client_prev", uicb_client_prev }, {"client_prev", uicb_client_prev },
{"client_next", uicb_client_next }, {"client_next", uicb_client_next },
{"client_swap_next", uicb_client_swap_next }, {"client_swap_next", uicb_client_swap_next },
{"client_swap_prev", uicb_client_swap_prev }, {"client_swap_prev", uicb_client_swap_prev },
{"client_screen_next", uicb_client_screen_next }, {"client_screen_next", uicb_client_screen_next },
{"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 },
{"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 },
{"tag", uicb_tag }, {"tag", uicb_tag },
{"tag_next", uicb_tag_next }, {"tag_next", uicb_tag_next },
{"tag_prev", uicb_tag_prev }, {"tag_prev", uicb_tag_prev },
{"tag_prev_sel", uicb_tag_prev_sel }, {"tag_prev_sel", uicb_tag_prev_sel },
{"tag_transfert", uicb_tagtransfert }, {"tag_transfert", uicb_tagtransfert },
{"tag_transfert_next", uicb_tagtransfert_next }, {"tag_transfert_next", uicb_tagtransfert_next },
{"tag_transfert_prev", uicb_tagtransfert_prev }, {"tag_transfert_prev", uicb_tagtransfert_prev },
{"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 },
{"toggle_infobar_position", uicb_infobar_togglepos }, {"toggle_infobar_position", uicb_infobar_togglepos },
{"toggle_resizehint", uicb_toggle_resizehint }, {"toggle_resizehint", uicb_toggle_resizehint },
{"mouse_move", uicb_mouse_move }, {"mouse_move", uicb_mouse_move },
{"mouse_resize", uicb_mouse_resize }, {"mouse_resize", uicb_mouse_resize },
{"client_raise", uicb_client_raise }, {"client_raise", uicb_client_raise },
{"toggle_free", uicb_togglefree }, {"toggle_free", uicb_togglefree },
{"toggle_abovefc", uicb_toggle_abovefc }, {"toggle_abovefc", uicb_toggle_abovefc },
{"screen_select", uicb_screen_select }, {"screen_select", uicb_screen_select },
{"screen_next", uicb_screen_next }, {"screen_next", uicb_screen_next },
{"screen_prev", uicb_screen_prev }, {"screen_prev", uicb_screen_prev },
{"screen_prev_sel", uicb_screen_prev_sel}, {"screen_prev_sel", uicb_screen_prev_sel},
{"reload", uicb_reload }, {"reload", uicb_reload },
{"launcher", uicb_launcher }, {"launcher", uicb_launcher },
{"set_layout", uicb_set_layout }, {"set_layout", uicb_set_layout },
{"menu", uicb_menu }, {"menu", uicb_menu },
{"set_client_layer", uicb_set_client_layer }, {"set_client_layer", uicb_set_client_layer },
{"set_layer", uicb_set_layer } {"set_layer", uicb_set_layer },
{"ignore_next_client_rules", uicb_ignore_next_client_rules }
}; };
key_name_list_t key_list[] = key_name_list_t key_list[] =

View File

@ -323,6 +323,7 @@ typedef struct
Bool raisefocus; Bool raisefocus;
Bool raiseswitch; Bool raiseswitch;
Bool focus_fmouse; Bool focus_fmouse;
Bool ignore_next_client_rules;
uint pad; uint pad;
int status_timing; int status_timing;
char *status_path; char *status_path;

View File

@ -181,6 +181,8 @@ void uicb_client_screen_next(uicb_t);
void uicb_client_screen_prev(uicb_t); void uicb_client_screen_prev(uicb_t);
void uicb_client_move(uicb_t cmd); void uicb_client_move(uicb_t cmd);
void uicb_client_resize(uicb_t cmd); void uicb_client_resize(uicb_t cmd);
void uicb_ignore_next_client_rules(uicb_t cmd);
/* ewmh.c */ /* ewmh.c */
void ewmh_init_hints(void); void ewmh_init_hints(void);