summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Davenport <DaveDavenport@users.noreply.github.com>2014-11-29 16:13:21 +0100
committerDave Davenport <DaveDavenport@users.noreply.github.com>2014-11-29 16:13:21 +0100
commit2e28802309c74fdbf23e9f8d0976b4cd34def1c1 (patch)
tree195cc81c41a597779b2fa7a001cbc7600d132717
parentedbeaf179061ccfc33c1dd52ce1338d7ad185e02 (diff)
parentada9f81ce0f0cce95e1ec361aa520ee39509d3f4 (diff)
Merge pull request #94 from qedi-r/master
Force custom commandline when Ctrl-Return is used
-rw-r--r--source/rofi.c6
-rw-r--r--source/textbox.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/source/rofi.c b/source/rofi.c
index 2d8454a4..b2efb1fd 100644
--- a/source/rofi.c
+++ b/source/rofi.c
@@ -1650,10 +1650,14 @@ MenuReturn menu ( char **lines, unsigned int num_lines, char **input, char *prom
}
// If a valid item is selected, return that..
- if ( state.selected < state.filtered_lines && state.filtered[state.selected] != NULL ) {
+ if ( rc != -2
+ && state.selected < state.filtered_lines && state.filtered[state.selected] != NULL ) {
state.retv = MENU_OK;
*( state.selected_line ) = state.line_map[state.selected];
}
+ // Either:
+ // Ctrl+Enter was used to force using custom input (-2)
+ // or
// No item selected, but user entered something
else if ( strlen ( state.text->text ) > 0 ) {
state.retv = MENU_CUSTOM_INPUT;
diff --git a/source/textbox.c b/source/textbox.c
index 3cbcb293..5228672f 100644
--- a/source/textbox.c
+++ b/source/textbox.c
@@ -405,6 +405,9 @@ int textbox_keypress ( textbox *tb, XEvent *ev )
textbox_cursor_bkspc ( tb );
return 1;
}
+ else if ( ( ev->xkey.state & ControlMask ) && ( key == XK_Return || key == XK_KP_Enter) ) {
+ return -2;
+ }
else if ( key == XK_Return || key == XK_KP_Enter ||
( ( ev->xkey.state & ControlMask ) && key == XK_j ) ||
( ( ev->xkey.state & ControlMask ) && key == XK_m ) ) {