diff options
Diffstat (limited to 'apps/root_menu.c')
-rw-r--r-- | apps/root_menu.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/root_menu.c b/apps/root_menu.c index abee02dbf7..c234614bc6 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c | |||
@@ -359,16 +359,21 @@ void root_menu(void) | |||
359 | switch (ret_val) | 359 | switch (ret_val) |
360 | { | 360 | { |
361 | case GO_TO_ROOT: | 361 | case GO_TO_ROOT: |
362 | selected = get_selection(last_screen); | 362 | if (last_screen != GO_TO_ROOT) |
363 | selected = get_selection(last_screen); | ||
363 | ret_val = do_menu(&root_menu_, &selected); | 364 | ret_val = do_menu(&root_menu_, &selected); |
364 | /* As long as MENU_ATTACHED_USB == GO_TO_ROOT this works */ | 365 | /* As long as MENU_ATTACHED_USB == GO_TO_ROOT this works */ |
365 | if (ret_val == MENU_ATTACHED_USB) | 366 | if (ret_val <= GO_TO_ROOT) |
366 | { | 367 | { |
367 | check_boot(); | 368 | if (ret_val == MENU_ATTACHED_USB) |
369 | check_boot(); | ||
370 | else if (ret_val == GO_TO_PREVIOUS) | ||
371 | { | ||
372 | ret_val = last_screen; | ||
373 | last_screen = GO_TO_ROOT; | ||
374 | } | ||
368 | continue; | 375 | continue; |
369 | } | 376 | } |
370 | else if (ret_val <= GO_TO_ROOT) | ||
371 | continue; | ||
372 | last_screen = GO_TO_ROOT; | 377 | last_screen = GO_TO_ROOT; |
373 | break; | 378 | break; |
374 | 379 | ||