summaryrefslogtreecommitdiffstats
path: root/source/mode.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/mode.c')
-rw-r--r--source/mode.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/mode.c b/source/mode.c
index 987f2823..6b7b2f48 100644
--- a/source/mode.c
+++ b/source/mode.c
@@ -96,9 +96,20 @@ char * mode_get_completion ( const Mode *mode, unsigned int selected_line )
ModeMode mode_result ( Mode *mode, int menu_retv, char **input, unsigned int selected_line )
{
+ if ( menu_retv & MENU_NEXT ) {
+ return NEXT_DIALOG;
+ }
+ else if ( menu_retv & MENU_PREVIOUS ) {
+ return PREVIOUS_DIALOG;
+ }
+ else if ( menu_retv & MENU_QUICK_SWITCH ) {
+ return ( menu_retv & MENU_LOWER_MASK );
+ }
+
g_assert ( mode != NULL );
g_assert ( mode->_result != NULL );
g_assert ( input != NULL );
+
return mode->_result ( mode, menu_retv, input, selected_line );
}