diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-05 13:36:00 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-05 13:36:00 +0000 |
| commit | 6bb473d291b27a41cb9336f6151f3f75cd993ada (patch) | |
| tree | 4c49bfc2d64d2066c3ffd886c03201cba51364bb /apps/root_menu.c | |
| parent | 1b2a1c8fe71e27c53c284535997cb07ac8e49536 (diff) | |
| download | rockbox-6bb473d291b27a41cb9336f6151f3f75cd993ada.zip rockbox-6bb473d291b27a41cb9336f6151f3f75cd993ada.tar.gz rockbox-6bb473d291b27a41cb9336f6151f3f75cd993ada.tar.bz2 rockbox-6bb473d291b27a41cb9336f6151f3f75cd993ada.tar.xz | |
Always try to select the last screen when enetering the Rockbox Menu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12623 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/root_menu.c')
| -rw-r--r-- | apps/root_menu.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/apps/root_menu.c b/apps/root_menu.c index 4f279c9..cb84033 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c @@ -298,6 +298,19 @@ int item_callback(int action, const struct menu_item_ex *this_item) } return action; } +static int get_selection(int last_screen) +{ + unsigned int i; + for(i=0; i< sizeof(root_menu__)/sizeof(*root_menu__); i++) + { + if ((root_menu__[i]->flags&MT_RETURN_VALUE) && + (root_menu__[i]->value == last_screen)) + { + return i; + } + } + return 0; +} void root_menu(void) { @@ -311,24 +324,12 @@ void root_menu(void) ret_val = (int)global_status.last_screen; else ret_val = global_settings.start_in_screen - 2; - /* try to select the start item if its not the menu */ - if (ret_val != GO_TO_ROOT) - { - unsigned int i; - for(i=0; i< sizeof(root_menu__)/sizeof(*root_menu__) - 1; i++) - { - if (root_menu__[i]->value == ret_val) - { - selected = i; - break; - } - } - } while (true) { switch (ret_val) { case GO_TO_ROOT: + selected = get_selection(last_screen); ret_val = do_menu(&root_menu_, &selected); /* As long as MENU_ATTACHED_USB == GO_TO_ROOT this works */ if (ret_val == MENU_ATTACHED_USB) |