Browse Source

Tag: Add functions to transfert selected client to next/previous tag.

OldMan 14 years ago
parent
commit
ade723b6bc
4 changed files with 46 additions and 1 deletions
  1. 2 0
      src/config.c
  2. 39 0
      src/tag.c
  3. 2 0
      src/viwmfs.c
  4. 3 1
      src/wmfs.h

+ 2 - 0
src/config.c

@@ -55,6 +55,8 @@ func_name_list_t tmp_func_list[] =
      {"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 },

+ 39 - 0
src/tag.c

@@ -184,3 +184,42 @@ uicb_tag_prev_sel(uicb_t cmd)
      return;
 }
 
+/** Transfert the selected client to the next tag
+ * \param cmd uicb_t type unused
+*/
+void
+uicb_tagtransfert_next(uicb_t cmd)
+{
+     CHECK(sel);
+     int tag = seltag[selscreen] + 1;
+
+     if(tag > conf.ntag[selscreen])
+     {
+         if(!conf.tag_round)
+             return;
+         tag = 1;
+     }
+     tag_transfert(sel, tag);
+
+     return;
+}
+
+/** Transfert the selected client to the prev tag
+ * \param cmd uicb_t type unused
+*/
+void
+uicb_tagtransfert_prev(uicb_t cmd)
+{
+     CHECK(sel);
+     int tag = seltag[selscreen] - 1;
+
+     if(tag <= 0)
+     {
+         if(!conf.tag_round)
+              return;
+         tag = conf.ntag[selscreen];
+     }
+     tag_transfert(sel, tag);
+
+     return;
+}

+ 2 - 0
src/viwmfs.c

@@ -49,6 +49,8 @@ vicmd_to_uicb vicmd[] =
      {"sp",      "screen_prev"},
      {"cc",      "client_kill"},
      {"ct",      "tag_transfert"},
+     {"ctn",     "tag_transfert_next"},
+     {"ctp",     "tag_transfert_prev"},
      {"cn",      "client_next"},
      {"cp",      "client_prev"},
      {"csn",     "client_swap_next"},

+ 3 - 1
src/wmfs.h

@@ -268,7 +268,9 @@ void uicb_tag(uicb_t);
 void uicb_tag_next(uicb_t);
 void uicb_tag_prev(uicb_t);
 void uicb_tagtransfert(uicb_t);
-void uicb_tag_prev_sel(uicb_t cmd);
+void uicb_tag_prev_sel(uicb_t);
+void uicb_tagtransfert_next(uicb_t);
+void uicb_tagtransfert_prev(uicb_t);
 
 /* screen.c */
 int screen_count(void);