diff --git a/source/dialogs/drun.c b/source/dialogs/drun.c index 969fe35f..db9506fe 100644 --- a/source/dialogs/drun.c +++ b/source/dialogs/drun.c @@ -1058,6 +1058,8 @@ static ModeMode drun_mode_result ( Mode *sw, int mretv, char **input, unsigned i rmpd->cmd_list_length--; } retv = RELOAD_DIALOG; + } else if ( mretv & MENU_CUSTOM_COMMAND ) { + retv = ( mretv & MENU_LOWER_MASK ); } return retv; } diff --git a/source/dialogs/filebrowser.c b/source/dialogs/filebrowser.c index 80730f17..568eef69 100644 --- a/source/dialogs/filebrowser.c +++ b/source/dialogs/filebrowser.c @@ -238,8 +238,9 @@ static ModeMode file_browser_mode_result ( Mode *sw, int mretv, char **input, un } else if ( mretv & MENU_QUICK_SWITCH ) { retv = ( mretv & MENU_LOWER_MASK ); - } - else if ( ( mretv & MENU_OK ) ) { + } else if ( mretv & MENU_CUSTOM_COMMAND ) { + retv = ( mretv & MENU_LOWER_MASK ); + } else if ( ( mretv & MENU_OK ) ) { if ( selected_line < pd->array_length ) { if ( pd->array[selected_line].type == UP ) { GFile *new = g_file_get_parent ( pd->current_dir ); diff --git a/source/dialogs/help-keys.c b/source/dialogs/help-keys.c index e5cedb14..6fc1e37f 100644 --- a/source/dialogs/help-keys.c +++ b/source/dialogs/help-keys.c @@ -71,6 +71,11 @@ static ModeMode help_keys_mode_result ( G_GNUC_UNUSED Mode *sw, G_GNUC_UNUSED char **input, G_GNUC_UNUSED unsigned int selected_line ) { + + if ( mretv & MENU_CUSTOM_COMMAND ) { + int retv = ( mretv & MENU_LOWER_MASK ); + return retv; + } return MODE_EXIT; } static void help_keys_mode_destroy ( Mode *sw ) diff --git a/source/dialogs/run.c b/source/dialogs/run.c index b889ca82..23b31e8b 100644 --- a/source/dialogs/run.c +++ b/source/dialogs/run.c @@ -391,6 +391,9 @@ static ModeMode run_mode_result ( Mode *sw, int mretv, char **input, unsigned in retv = RELOAD_DIALOG; run_mode_destroy ( sw ); run_mode_init ( sw ); + + } else if ( mretv & MENU_CUSTOM_COMMAND ) { + retv = ( mretv & MENU_LOWER_MASK ); } return retv; } diff --git a/source/dialogs/ssh.c b/source/dialogs/ssh.c index 51e19a7c..76f0d75f 100644 --- a/source/dialogs/ssh.c +++ b/source/dialogs/ssh.c @@ -606,6 +606,8 @@ static ModeMode ssh_mode_result ( Mode *sw, int mretv, char **input, unsigned in retv = RELOAD_DIALOG; ssh_mode_destroy ( sw ); ssh_mode_init ( sw ); + } else if ( mretv & MENU_CUSTOM_COMMAND ) { + retv = ( mretv & MENU_LOWER_MASK ); } return retv; } diff --git a/source/dialogs/window.c b/source/dialogs/window.c index 73adf045..825ec634 100644 --- a/source/dialogs/window.c +++ b/source/dialogs/window.c @@ -715,6 +715,8 @@ static ModeMode window_mode_result ( Mode *sw, int mretv, G_GNUC_UNUSED char **i retv = RELOAD_DIALOG; } g_free ( lf_cmd ); + } else if ( mretv & MENU_CUSTOM_COMMAND ) { + retv = ( mretv & MENU_LOWER_MASK ); } return retv; }