summary refs log tree commit diff
path: root/kbfunc.c
diff options
context:
space:
mode:
authorokan <okan>2016-09-22 14:36:03 +0000
committerokan <okan>2016-09-22 14:36:03 +0000
commit57b2a6cf796614df4723cc5ffff12101a21e7850 (patch)
tree7ffc6a2e6647a16fdb3e31c65c39858aee600947 /kbfunc.c
parent3947f1268ab4ba15af8f4eeea6224628188a7f5f (diff)
downloadcwm-57b2a6cf796614df4723cc5ffff12101a21e7850.tar.gz
cwm-57b2a6cf796614df4723cc5ffff12101a21e7850.tar.xz
cwm-57b2a6cf796614df4723cc5ffff12101a21e7850.zip
Continue merging kb and mouse functions: fold
mousefunc_menu_{client,cmd,group} into the respective
kbfunc_menu_{client,cmd,group} functions; simply pass a flag down from
config denoting mouse action behaviour.
Diffstat (limited to 'kbfunc.c')
-rw-r--r--kbfunc.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/kbfunc.c b/kbfunc.c
index fdb8e4b..efcfd3c 100644
--- a/kbfunc.c
+++ b/kbfunc.c
@@ -167,14 +167,22 @@ kbfunc_menu_client(struct client_ctx *cc, union arg *arg)
 	struct client_ctx	*old_cc;
 	struct menu		*mi;
 	struct menu_q		 menuq;
+	int			 m = (arg->i == CWM_MOUSE);
 
 	old_cc = client_current();
 
 	TAILQ_INIT(&menuq);
-	TAILQ_FOREACH(cc, &sc->clientq, entry)
-		menuq_add(&menuq, cc, NULL);
+	TAILQ_FOREACH(cc, &sc->clientq, entry) {
+		if (m) {
+			if (cc->flags & CLIENT_HIDDEN)
+				menuq_add(&menuq, cc, NULL);
+		} else
+			menuq_add(&menuq, cc, NULL);
+	}
 
-	if ((mi = menu_filter(sc, &menuq, "window", NULL, 0,
+	if ((mi = menu_filter(sc, &menuq,
+	    (m) ? NULL : "window", NULL,
+	    (m) ? CWM_MENU_LIST : 0,
 	    search_match_client, search_print_client)) != NULL) {
 		cc = (struct client_ctx *)mi->ctx;
 		if (cc->flags & CLIENT_HIDDEN)
@@ -194,6 +202,7 @@ kbfunc_menu_cmd(struct client_ctx *cc, union arg *arg)
 	struct cmd		*cmd;
 	struct menu		*mi;
 	struct menu_q		 menuq;
+	int			 m = (arg->i == CWM_MOUSE);
 
 	TAILQ_INIT(&menuq);
 	TAILQ_FOREACH(cmd, &Conf.cmdq, entry) {
@@ -204,9 +213,13 @@ kbfunc_menu_cmd(struct client_ctx *cc, union arg *arg)
 		menuq_add(&menuq, cmd, "%s", cmd->name);
 	}
 
-	if ((mi = menu_filter(sc, &menuq, "application", NULL, 0,
-	    search_match_text, search_print_cmd)) != NULL)
-		u_spawn(((struct cmd *)mi->ctx)->path);
+	if ((mi = menu_filter(sc, &menuq,
+	    (m) ? NULL : "application", NULL,
+	    (m) ? CWM_MENU_LIST : 0,
+	    search_match_text, search_print_cmd)) != NULL) {
+		cmd = (struct cmd *)mi->ctx;
+		u_spawn(cmd->path);
+	}
 
 	menuq_clear(&menuq);
 }
@@ -218,6 +231,7 @@ kbfunc_menu_group(struct client_ctx *cc, union arg *arg)
 	struct group_ctx	*gc;
 	struct menu		*mi;
 	struct menu_q		 menuq;
+	int			 m = (arg->i == CWM_MOUSE);
 
 	TAILQ_INIT(&menuq);
 	TAILQ_FOREACH(gc, &sc->groupq, entry) {
@@ -226,7 +240,8 @@ kbfunc_menu_group(struct client_ctx *cc, union arg *arg)
 		menuq_add(&menuq, gc, "%d %s", gc->num, gc->name);
 	}
 
-	if ((mi = menu_filter(sc, &menuq, "group", NULL, CWM_MENU_LIST,
+	if ((mi = menu_filter(sc, &menuq,
+	    (m) ? NULL : "group", NULL, CWM_MENU_LIST,
 	    search_match_text, search_print_group)) != NULL) {
 		gc = (struct group_ctx *)mi->ctx;
 		(group_holds_only_hidden(gc)) ?