forked from len0rd/rockbox
Repaired broken exit from plugin/font/language browser
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5597 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
cdd79a35d4
commit
ea1188ce8c
1 changed files with 9 additions and 17 deletions
26
apps/tree.c
26
apps/tree.c
|
@ -749,6 +749,11 @@ static bool dirbrowse(void)
|
||||||
#ifdef TREE_RC_EXIT
|
#ifdef TREE_RC_EXIT
|
||||||
case TREE_RC_EXIT:
|
case TREE_RC_EXIT:
|
||||||
#endif
|
#endif
|
||||||
|
if (*tc.dirfilter > NUM_FILTER_MODES && tc.dirlevel < 1) {
|
||||||
|
exit_func = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (!tc.dirlevel)
|
if (!tc.dirlevel)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1363,31 +1368,18 @@ bool create_playlist(void)
|
||||||
|
|
||||||
bool rockbox_browse(const char *root, int dirfilter)
|
bool rockbox_browse(const char *root, int dirfilter)
|
||||||
{
|
{
|
||||||
bool rc;
|
static struct tree_context backup;
|
||||||
int dircursor_save = tc.dircursor;
|
|
||||||
int dirstart_save = tc.dirstart;
|
|
||||||
int dirlevel_save = tc.dirlevel;
|
|
||||||
int dirpos_save = tc.dirpos[0];
|
|
||||||
int cursorpos_save = tc.cursorpos[0];
|
|
||||||
int* dirfilter_save = tc.dirfilter;
|
|
||||||
static char currdir_save[MAX_PATH];
|
|
||||||
|
|
||||||
memcpy(currdir_save, tc.currdir, sizeof(tc.currdir));
|
backup = tc;
|
||||||
reload_dir = true;
|
reload_dir = true;
|
||||||
memcpy(tc.currdir, root, sizeof(tc.currdir));
|
memcpy(tc.currdir, root, sizeof(tc.currdir));
|
||||||
start_wps = false;
|
start_wps = false;
|
||||||
tc.dirfilter = &dirfilter;
|
tc.dirfilter = &dirfilter;
|
||||||
|
|
||||||
rc = dirbrowse();
|
dirbrowse();
|
||||||
|
|
||||||
memcpy(tc.currdir, currdir_save, sizeof(tc.currdir));
|
tc = backup;
|
||||||
reload_dir = true;
|
reload_dir = true;
|
||||||
tc.dirstart = dirstart_save;
|
|
||||||
tc.cursorpos[0] = cursorpos_save;
|
|
||||||
tc.dirlevel = dirlevel_save;
|
|
||||||
tc.dircursor = dircursor_save;
|
|
||||||
tc.dirpos[0] = dirpos_save;
|
|
||||||
tc.dirfilter = dirfilter_save;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue