diff --git a/src/browser.c b/src/browser.c index 6a4ce1a..65fbb6b 100644 --- a/src/browser.c +++ b/src/browser.c @@ -259,6 +259,15 @@ void browse_draw() { char *tmp; int selected = 0, i; + extern struct dir *root; /* root directory struct we're scanning */ + if (pstate == ST_CALC) { + static bool open = false; + if (!open) { + dirlist_open(root); + open = true; + } + } + erase(); t = dirlist_get(0); diff --git a/src/dir_mem.c b/src/dir_mem.c index 6854683..d03485f 100644 --- a/src/dir_mem.c +++ b/src/dir_mem.c @@ -31,7 +31,7 @@ #include -static struct dir *root; /* root directory struct we're scanning */ +struct dir *root; /* root directory struct we're scanning */ static struct dir *curdir; /* directory item that we're currently adding items to */ static struct dir *orig; /* original directory, when refreshing an already scanned dir */ diff --git a/src/main.c b/src/main.c index 4f12e63..6b82716 100644 --- a/src/main.c +++ b/src/main.c @@ -52,7 +52,7 @@ static long lastupdate = 999; static void screen_draw() { switch(pstate) { - case ST_CALC: dir_draw(); break; + case ST_CALC: browse_draw(); break; case ST_BROWSE: browse_draw(); break; case ST_HELP: help_draw(); break; case ST_SHELL: shell_draw(); break; @@ -98,7 +98,7 @@ int input_handle(int wait) { continue; } switch(pstate) { - case ST_CALC: return dir_key(ch); + case ST_CALC: return browse_key(ch); case ST_BROWSE: return browse_key(ch); case ST_HELP: return help_key(ch); case ST_DEL: return delete_key(ch);