.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