summary refs log tree commit diff
diff options
context:
space:
mode:
authorokan <okan>2016-12-01 18:17:52 +0000
committerokan <okan>2016-12-01 18:17:52 +0000
commit92111e526d34a0bd808c40ae5d7634900c726d0b (patch)
tree562734f026a42c1956ab3b781f0d10830ca2db2e
parentd968a6c1bf1115fe261e979ac1d58ab5c12cd176 (diff)
downloadcwm-92111e526d34a0bd808c40ae5d7634900c726d0b.tar.gz
cwm-92111e526d34a0bd808c40ae5d7634900c726d0b.tar.xz
cwm-92111e526d34a0bd808c40ae5d7634900c726d0b.zip
Change 'menu-window' to display all windows; then add 'menu-window-hidden' for
the previous behaviour of 'menu-window'.  'menu-window' becomes the default
binding; use 'bind-mouse "1" menu-window-hidden' to restore old behaviour for
those who prefer.

OK sthen@ (long long time ago on a different version)
-rw-r--r--calmwm.h2
-rw-r--r--conf.c5
-rw-r--r--cwm.14
-rw-r--r--cwmrc.52
-rw-r--r--kbfunc.c3
5 files changed, 12 insertions, 4 deletions
diff --git a/calmwm.h b/calmwm.h
index e7c679f..3c5069b 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -261,6 +261,8 @@ enum menu_exec {
 #define CWM_MENU_DUMMY		0x0001
 #define CWM_MENU_FILE		0x0002
 #define CWM_MENU_LIST		0x0004
+#define CWM_MENU_WINDOW_ALL	0x0008
+#define CWM_MENU_WINDOW_HIDDEN	0x0010
 
 struct menu {
 	TAILQ_ENTRY(menu)	 entry;
diff --git a/conf.c b/conf.c
index 8facd65..d0b5a97 100644
--- a/conf.c
+++ b/conf.c
@@ -174,7 +174,10 @@ static const struct {
 	{ "menu-cmd", kbfunc_menu_cmd, CWM_CONTEXT_SC, {0} },
 	{ "menu-group", kbfunc_menu_group, CWM_CONTEXT_SC, {0} },
 	{ "menu-ssh", kbfunc_menu_ssh, CWM_CONTEXT_SC, {0} },
-	{ "menu-window", kbfunc_menu_client, CWM_CONTEXT_SC, {0} },
+	{ "menu-window", kbfunc_menu_client, CWM_CONTEXT_SC,
+	    {.i = CWM_MENU_WINDOW_ALL} },
+	{ "menu-window-hidden", kbfunc_menu_client, CWM_CONTEXT_SC,
+	    {.i = CWM_MENU_WINDOW_HIDDEN} },
 	{ "menu-exec", kbfunc_menu_exec, CWM_CONTEXT_SC,
 	    {.i = CWM_MENU_EXEC_EXEC} },
 	{ "menu-exec-wm", kbfunc_menu_exec, CWM_CONTEXT_SC,
diff --git a/cwm.1 b/cwm.1
index ab03c66..2898a52 100644
--- a/cwm.1
+++ b/cwm.1
@@ -219,8 +219,8 @@ Menus are recalled by clicking the mouse on the root window:
 .Pp
 .Bl -tag -width Ds -offset indent -compact
 .It Ic M1
-Show list of currently hidden windows.
-Selecting an item will unhide that window.
+Show list of currently defined windows.
+Selecting an item will warp to that window, unhiding it if necessary.
 .It Ic M2
 Show list of currently defined groups.
 Selecting an item will hide/unhide that group.
diff --git a/cwmrc.5 b/cwmrc.5
index 40bc294..6419abd 100644
--- a/cwmrc.5
+++ b/cwmrc.5
@@ -261,6 +261,8 @@ Spawn a new terminal.
 Lock the screen.
 .It menu-window
 Launch window search menu.
+.It menu-window-hidden
+Launch hidden window search menu.
 .It menu-cmd
 Launch application search menu.
 .It menu-group
diff --git a/kbfunc.c b/kbfunc.c
index f0cadf2..0284928 100644
--- a/kbfunc.c
+++ b/kbfunc.c
@@ -298,12 +298,13 @@ kbfunc_menu_client(void *ctx, union arg *arg, enum xev xev)
 	struct menu		*mi;
 	struct menu_q		 menuq;
 	int			 m = (xev == CWM_XEV_BTN);
+	int			 all = (arg->i & CWM_MENU_WINDOW_ALL);
 
 	old_cc = client_current();
 
 	TAILQ_INIT(&menuq);
 	TAILQ_FOREACH(cc, &sc->clientq, entry) {
-		if (m) {
+		if (!all) {
 			if (cc->flags & CLIENT_HIDDEN)
 				menuq_add(&menuq, cc, NULL);
 		} else