Hi,

The following patch makes c-j and c-m in dmenu work as the manpage
describes. Because ControlMask was set it would select and output the
line, but not exit.

Thanks to mistnum on IRC for reporting this!

Kind regards,
Hiltjo
From 00d3ebc66c1a1cc2fa8c834fd7632d9058fe3aab Mon Sep 17 00:00:00 2001
From: Hiltjo Posthuma <hil...@codemadness.org>
Date: Wed, 17 Sep 2014 11:53:21 +0000
Subject: [PATCH] reset controlmask for c-j and c-m

---
 dmenu.1 | 3 +++
 dmenu.c | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dmenu.1 b/dmenu.1
index bbee17d..2897ab1 100644
--- a/dmenu.1
+++ b/dmenu.1
@@ -136,6 +136,9 @@ Delete line right
 C\-m
 Return
 .TP
+C\-M
+Shift-Return
+.TP
 C\-n
 Down
 .TP
diff --git a/dmenu.c b/dmenu.c
index b56f3a8..94c70de 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -256,9 +256,9 @@ keypress(XKeyEvent *ev) {
 		case XK_h: ksym = XK_BackSpace; break;
 		case XK_i: ksym = XK_Tab;       break;
 		case XK_j: /* fallthrough */
-		case XK_J: ksym = XK_Return;    break;
+		case XK_J: /* fallthrough */
 		case XK_m: /* fallthrough */
-		case XK_M: ksym = XK_Return;    break;
+		case XK_M: ksym = XK_Return; ev->state &= ~ControlMask; break;
 		case XK_n: ksym = XK_Down;      break;
 		case XK_p: ksym = XK_Up;        break;
 
-- 
2.1.0

Reply via email to