diff --git a/src/client.c b/src/client.c index 762951a..91e796f 100644 --- a/src/client.c +++ b/src/client.c @@ -837,6 +837,12 @@ client_set_wanted_tag(Client *c) XClassHint xch = { 0 }; int i, j, k; + if(conf.ignore_next_client_rules) + { + conf.ignore_next_client_rules = False; + return; + } + XGetClassHint(dpy, c->win, &xch); for(i = 0; i < screen_count(); ++i) @@ -1130,3 +1136,16 @@ uicb_client_resize(uicb_t cmd) 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; +} + + diff --git a/src/config.c b/src/config.c index 50ab53f..7f0046b 100644 --- a/src/config.c +++ b/src/config.c @@ -37,48 +37,47 @@ static void conf_section(void (*)(char*), char *, char *); func_name_list_t tmp_func_list[] = { - {"spawn", uicb_spawn }, - {"client_kill", uicb_client_kill }, - {"client_prev", uicb_client_prev }, - {"client_next", uicb_client_next }, - {"client_swap_next", uicb_client_swap_next }, - {"client_swap_prev", uicb_client_swap_prev }, - {"client_screen_next", uicb_client_screen_next }, - {"client_screen_prev", uicb_client_screen_prev }, - {"client_move", uicb_client_move }, - {"client_resize", uicb_client_resize }, - {"toggle_max", uicb_togglemax }, - {"layout_next", uicb_layout_next }, - {"layout_prev", uicb_layout_prev }, - {"tag", uicb_tag }, - {"tag_next", uicb_tag_next }, - {"tag_prev", uicb_tag_prev }, - {"tag_prev_sel", uicb_tag_prev_sel }, - {"tag_transfert", uicb_tagtransfert }, - {"tag_transfert_next", uicb_tagtransfert_next }, - {"tag_transfert_prev", uicb_tagtransfert_prev }, - {"set_mwfact", uicb_set_mwfact }, - {"set_nmaster", uicb_set_nmaster }, - {"quit", uicb_quit }, - {"toggle_infobar_position", uicb_infobar_togglepos }, - {"toggle_resizehint", uicb_toggle_resizehint }, - {"mouse_move", uicb_mouse_move }, - {"mouse_resize", uicb_mouse_resize }, - {"client_raise", uicb_client_raise }, - {"toggle_free", uicb_togglefree }, - {"toggle_abovefc", uicb_toggle_abovefc }, - {"screen_select", uicb_screen_select }, - {"screen_next", uicb_screen_next }, - {"screen_prev", uicb_screen_prev }, - {"screen_prev_sel", uicb_screen_prev_sel}, - {"reload", uicb_reload }, - {"launcher", uicb_launcher }, - {"set_layout", uicb_set_layout }, - {"menu", uicb_menu }, - {"set_client_layer", uicb_set_client_layer }, - {"set_layer", uicb_set_layer } - - + {"spawn", uicb_spawn }, + {"client_kill", uicb_client_kill }, + {"client_prev", uicb_client_prev }, + {"client_next", uicb_client_next }, + {"client_swap_next", uicb_client_swap_next }, + {"client_swap_prev", uicb_client_swap_prev }, + {"client_screen_next", uicb_client_screen_next }, + {"client_screen_prev", uicb_client_screen_prev }, + {"client_move", uicb_client_move }, + {"client_resize", uicb_client_resize }, + {"toggle_max", uicb_togglemax }, + {"layout_next", uicb_layout_next }, + {"layout_prev", uicb_layout_prev }, + {"tag", uicb_tag }, + {"tag_next", uicb_tag_next }, + {"tag_prev", uicb_tag_prev }, + {"tag_prev_sel", uicb_tag_prev_sel }, + {"tag_transfert", uicb_tagtransfert }, + {"tag_transfert_next", uicb_tagtransfert_next }, + {"tag_transfert_prev", uicb_tagtransfert_prev }, + {"set_mwfact", uicb_set_mwfact }, + {"set_nmaster", uicb_set_nmaster }, + {"quit", uicb_quit }, + {"toggle_infobar_position", uicb_infobar_togglepos }, + {"toggle_resizehint", uicb_toggle_resizehint }, + {"mouse_move", uicb_mouse_move }, + {"mouse_resize", uicb_mouse_resize }, + {"client_raise", uicb_client_raise }, + {"toggle_free", uicb_togglefree }, + {"toggle_abovefc", uicb_toggle_abovefc }, + {"screen_select", uicb_screen_select }, + {"screen_next", uicb_screen_next }, + {"screen_prev", uicb_screen_prev }, + {"screen_prev_sel", uicb_screen_prev_sel}, + {"reload", uicb_reload }, + {"launcher", uicb_launcher }, + {"set_layout", uicb_set_layout }, + {"menu", uicb_menu }, + {"set_client_layer", uicb_set_client_layer }, + {"set_layer", uicb_set_layer }, + {"ignore_next_client_rules", uicb_ignore_next_client_rules } }; key_name_list_t key_list[] = diff --git a/src/structs.h b/src/structs.h index a26dacf..50cddd7 100644 --- a/src/structs.h +++ b/src/structs.h @@ -323,6 +323,7 @@ typedef struct Bool raisefocus; Bool raiseswitch; Bool focus_fmouse; + Bool ignore_next_client_rules; uint pad; int status_timing; char *status_path; diff --git a/src/wmfs.h b/src/wmfs.h index e3acc50..a776b5b 100644 --- a/src/wmfs.h +++ b/src/wmfs.h @@ -181,6 +181,8 @@ void uicb_client_screen_next(uicb_t); void uicb_client_screen_prev(uicb_t); void uicb_client_move(uicb_t cmd); void uicb_client_resize(uicb_t cmd); +void uicb_ignore_next_client_rules(uicb_t cmd); + /* ewmh.c */ void ewmh_init_hints(void);