Browse Source

Client: Add ignore_next_client_rules uicb function requested by Armael.

Martin Duquesnoy 14 years ago
parent
commit
06a9c44792
4 changed files with 63 additions and 42 deletions
  1. 19 0
      src/client.c
  2. 41 42
      src/config.c
  3. 1 0
      src/structs.h
  4. 2 0
      src/wmfs.h

+ 19 - 0
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;
+}
+
+

+ 41 - 42
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[] =

+ 1 - 0
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;

+ 2 - 0
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);