diff options
Diffstat (limited to 'apps/menu.c')
| -rw-r--r-- | apps/menu.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/menu.c b/apps/menu.c index c657c2c..c8fc5f6 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -411,17 +411,20 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) } else if (action == ACTION_STD_CANCEL) { + bool exiting_menu = false; in_stringlist = false; if (menu_callback) menu_callback(ACTION_EXIT_MENUITEM, menu); if (menu->flags&MENU_EXITAFTERTHISMENU) done = true; + else if ((menu->flags&MENU_TYPE_MASK) == MT_MENU) + exiting_menu = true; if (stack_top > 0) { stack_top--; menu = menu_stack[stack_top]; - if (menu->flags&MENU_EXITAFTERTHISMENU) + if (!exiting_menu && (menu->flags&MENU_EXITAFTERTHISMENU)) done = true; else init_menu_lists(menu, &lists, |