Sometimes I want to type something like "xterm -e top" in "exec" menu,
and feel the need for tab completion.
Not sure about the FALLTHROUGH thing, though.
Index: menu.c
===================================================================
RCS file: /cvs/xenocara/app/cwm/menu.c,v
retrieving revision 1.33
diff -u -p -u -r1.33 menu.c
--- menu.c 8 Sep 2011 12:00:50 -0000 1.33
+++ menu.c 19 Jan 2012 20:58:45 -0000
@@ -37,7 +37,7 @@
enum ctltype {
CTL_NONE = -1,
CTL_ERASEONE = 0, CTL_WIPE, CTL_UP, CTL_DOWN, CTL_RETURN,
- CTL_ABORT, CTL_ALL
+ CTL_TAB, CTL_ABORT, CTL_ALL
};
struct menu_ctx {
@@ -254,6 +254,14 @@ menu_handle_key(XEvent *e, struct menu_c
mc->searchstr[0] = '\0';
mc->changed = 1;
break;
+ case CTL_TAB:
+ if ((mi = TAILQ_FIRST(resultq)) != NULL) {
+ (void)strlcpy(mc->searchstr,
+ mi->text, sizeof(mc->searchstr));
+ mc->changed = 1;
+ break;
+ }
+ /* FALLTHROUGH */
case CTL_ALL:
mc->list = !mc->list;
break;
@@ -475,6 +483,9 @@ menu_keycode(KeyCode kc, u_int state, en
break;
case XK_Return:
*ctl = CTL_RETURN;
+ break;
+ case XK_Tab:
+ *ctl = CTL_TAB;
break;
case XK_Up:
*ctl = CTL_UP;
--
Alexander Polakov | plhk.ru