summaryrefslogtreecommitdiff
path: root/apps/root_menu.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-03-07 10:13:07 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-03-07 10:13:07 +0000
commit43b2d091baafa1b1a6c90af6b927a8acc53f8e7b (patch)
tree169aeee96bb09ddef77d30181fc664d7bfc97b01 /apps/root_menu.c
parent67b3206709171c560705ea4447f21b73524ed21a (diff)
downloadrockbox-43b2d091baafa1b1a6c90af6b927a8acc53f8e7b.tar.gz
rockbox-43b2d091baafa1b1a6c90af6b927a8acc53f8e7b.zip
Fix the various bugs associated with pressing MENU to move in and out of
the Rockbox Menu git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12666 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/root_menu.c')
-rw-r--r--apps/root_menu.c15
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