summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bemenu.h1
-rw-r--r--lib/draw/curses.c6
-rw-r--r--lib/menu.c4
3 files changed, 10 insertions, 1 deletions
diff --git a/lib/bemenu.h b/lib/bemenu.h
index 0b0769d..9ef684f 100644
--- a/lib/bemenu.h
+++ b/lib/bemenu.h
@@ -88,6 +88,7 @@ typedef enum bmKey {
BM_KEY_ESCAPE,
BM_KEY_RETURN,
BM_KEY_SHIFT_RETURN,
+ BM_KEY_CONTROL_RETURN,
BM_KEY_UNICODE,
BM_KEY_LAST
} bmKey;
diff --git a/lib/draw/curses.c b/lib/draw/curses.c
index b54693f..4b467f6 100644
--- a/lib/draw/curses.c
+++ b/lib/draw/curses.c
@@ -291,7 +291,13 @@ static bmKey _bmDrawCursesGetKey(unsigned int *unicode)
case 9: /* Tab */
return BM_KEY_TAB;
+ case 0: /* C-Space */
case 18: /* C-r */
+ return BM_KEY_CONTROL_RETURN;
+
+ case 20: /* C-t */
+ case 331: /* Insert */
+ _bmDrawCursesEndWin();
return BM_KEY_SHIFT_RETURN;
case 10: /* Return */
diff --git a/lib/menu.c b/lib/menu.c
index e819dd5..a53451d 100644
--- a/lib/menu.c
+++ b/lib/menu.c
@@ -663,7 +663,7 @@ bmRunResult bmMenuRunWithKey(bmMenu *menu, bmKey key, unsigned int unicode)
}
break;
- case BM_KEY_SHIFT_RETURN:
+ case BM_KEY_CONTROL_RETURN:
case BM_KEY_RETURN:
{
bmItem *highlighted = bmMenuGetHighlightedItem(menu);
@@ -672,6 +672,7 @@ bmRunResult bmMenuRunWithKey(bmMenu *menu, bmKey key, unsigned int unicode)
}
break;
+ case BM_KEY_SHIFT_RETURN:
case BM_KEY_ESCAPE:
_bmItemListFreeList(&menu->selection);
break;
@@ -682,6 +683,7 @@ bmRunResult bmMenuRunWithKey(bmMenu *menu, bmKey key, unsigned int unicode)
bmMenuFilter(menu);
switch (key) {
+ case BM_KEY_SHIFT_RETURN:
case BM_KEY_RETURN: return BM_RUN_RESULT_SELECTED;
case BM_KEY_ESCAPE: return BM_RUN_RESULT_CANCEL;
default: break;