From 92111e526d34a0bd808c40ae5d7634900c726d0b Mon Sep 17 00:00:00 2001 From: okan Date: Thu, 1 Dec 2016 18:17:52 +0000 Subject: [PATCH] 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) --- calmwm.h | 2 ++ conf.c | 5 ++++- cwm.1 | 4 ++-- cwmrc.5 | 2 ++ kbfunc.c | 3 ++- 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