.rockbox browse fixes, based on patch #861278 by Brian King: (1) Leaving the sub-browser with ON is disabled to prevent possibly endless recursion, (2) For browsing plugins and fonts, the browser doesn't quit automatically after selecting a file, for more convenient use of plugins and trying out different fonts. Additionally, the button bar display is fixed to properly reflect the unavailability of F1 in a sub-browser
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5023 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/tree.c b/apps/tree.c
index 272ea33..bcf44a2 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -227,15 +227,15 @@
return 0;
snprintf(dirname_mp3_filename, sizeof(dirname_mp3_filename), "%s/%s/%s",
- currdir, dircache[start_index].name, dir_thumbnail_name);
+ currdir, dircache[start_index].name, dir_thumbnail_name);
DEBUGF("Checking for %s\n", dirname_mp3_filename);
fd = open(dirname_mp3_filename, O_RDONLY);
if (fd < 0)
{
- DEBUGF("Failed to find: %s\n", dirname_mp3_filename);
- return -1;
+ DEBUGF("Failed to find: %s\n", dirname_mp3_filename);
+ return -1;
}
close(fd);
@@ -579,7 +579,8 @@
start + tree_max_on_screen, VERTICAL);
if(global_settings.buttonbar) {
- buttonbar_set(str(LANG_DIRBROWSE_F1),
+ buttonbar_set(*dirfilter < NUM_FILTER_MODES ?
+ str(LANG_DIRBROWSE_F1) : (unsigned char *) "",
str(LANG_DIRBROWSE_F2),
str(LANG_DIRBROWSE_F3));
buttonbar_draw();
@@ -1226,7 +1227,9 @@
start_wps = true;
}
- else if (*dirfilter > NUM_FILTER_MODES)
+ else if (*dirfilter > NUM_FILTER_MODES &&
+ *dirfilter != SHOW_FONT &&
+ *dirfilter != SHOW_PLUGINS)
exit_func = true;
}
restore = true;
@@ -1330,14 +1333,18 @@
}
else
{
- if (mpeg_status() & MPEG_STATUS_PLAY)
+ if (*dirfilter < NUM_FILTER_MODES)
+ /* don't catch single ON from .rockbox browsing */
{
- start_wps=true;
- }
- else
- {
- start_resume(false);
- restore = true;
+ if (mpeg_status() & MPEG_STATUS_PLAY)
+ {
+ start_wps=true;
+ }
+ else
+ {
+ start_resume(false);
+ restore = true;
+ }
}
}
break;
@@ -1394,7 +1401,7 @@
ata_spin();
if (start_wps)
- {
+ {
lcd_stop_scroll();
if (wps_show() == SYS_USB_CONNECTED)
reload_root = true;
diff --git a/docs/CREDITS b/docs/CREDITS
index 0a49e6a..4556202 100644
--- a/docs/CREDITS
+++ b/docs/CREDITS
@@ -91,3 +91,4 @@
Mat Holton
Jan Gajdos
Antoine Cellerier
+Brian King