summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2011-10-07 22:59:06 +0000
committerThomas Martitz <kugel@rockbox.org>2011-10-07 22:59:06 +0000
commitb779fcc3ed9adbaf0fda5598f3e26a154f1c1410 (patch)
treed1e8969d93b1933ecf478aab908298b804878405 /apps
parent1195b2384f50263e9da019342a3b109afc390193 (diff)
downloadrockbox-b779fcc3ed9adbaf0fda5598f3e26a154f1c1410.zip
rockbox-b779fcc3ed9adbaf0fda5598f3e26a154f1c1410.tar.gz
rockbox-b779fcc3ed9adbaf0fda5598f3e26a154f1c1410.tar.bz2
rockbox-b779fcc3ed9adbaf0fda5598f3e26a154f1c1410.tar.xz
Fix exit/return behavior in the id3 info screen.Fixes returning immediately on touchscreen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30727 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/onplay.c12
-rw-r--r--apps/screens.c9
2 files changed, 16 insertions, 5 deletions
diff --git a/apps/onplay.c b/apps/onplay.c
index 03981c6..e51cac4 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -978,9 +978,17 @@ static int view_cue_item_callback(int action,
MENUITEM_FUNCTION(view_cue_item, 0, ID2P(LANG_BROWSE_CUESHEET),
view_cue, NULL, view_cue_item_callback, Icon_NOICON);
+
+static int browse_id3_wrapper(void)
+{
+ if (browse_id3())
+ return GO_TO_ROOT;
+ return GO_TO_PREVIOUS;
+}
+
/* CONTEXT_WPS items */
-MENUITEM_FUNCTION(browse_id3_item, 0, ID2P(LANG_MENU_SHOW_ID3_INFO),
- browse_id3, NULL, NULL, Icon_NOICON);
+MENUITEM_FUNCTION(browse_id3_item, MENU_FUNC_CHECK_RETVAL, ID2P(LANG_MENU_SHOW_ID3_INFO),
+ browse_id3_wrapper, NULL, NULL, Icon_NOICON);
#ifdef HAVE_PITCHSCREEN
MENUITEM_FUNCTION(pitch_screen_item, 0, ID2P(LANG_PITCH),
gui_syncpitchscreen_run, NULL, NULL, Icon_Audio);
diff --git a/apps/screens.c b/apps/screens.c
index e20f967..e49133f 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -774,10 +774,13 @@ bool browse_id3(void)
gui_synclist_draw(&id3_lists);
while (true) {
key = get_action(CONTEXT_LIST,HZ/2);
- if(key!=ACTION_NONE && key!=ACTION_UNKNOWN
- && !gui_synclist_do_button(&id3_lists, &key,LIST_WRAP_UNLESS_HELD))
+ if(!gui_synclist_do_button(&id3_lists, &key,LIST_WRAP_UNLESS_HELD))
{
- return(default_event_handler(key) == SYS_USB_CONNECTED);
+ if (key == ACTION_STD_OK || key == ACTION_STD_CANCEL)
+ return false;
+ else if (key == ACTION_STD_MENU ||
+ default_event_handler(key) == SYS_USB_CONNECTED)
+ return true;
}
}
}