diff options
author | Dave Davenport <DaveDavenport@users.noreply.github.com> | 2014-11-29 16:13:21 +0100 |
---|---|---|
committer | Dave Davenport <DaveDavenport@users.noreply.github.com> | 2014-11-29 16:13:21 +0100 |
commit | 2e28802309c74fdbf23e9f8d0976b4cd34def1c1 (patch) | |
tree | 195cc81c41a597779b2fa7a001cbc7600d132717 | |
parent | edbeaf179061ccfc33c1dd52ce1338d7ad185e02 (diff) | |
parent | ada9f81ce0f0cce95e1ec361aa520ee39509d3f4 (diff) |
Merge pull request #94 from qedi-r/master
Force custom commandline when Ctrl-Return is used
-rw-r--r-- | source/rofi.c | 6 | ||||
-rw-r--r-- | source/textbox.c | 3 |
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 ) ) { |