diff options
Diffstat (limited to 'apps/tree.c')
-rw-r--r-- | apps/tree.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/tree.c b/apps/tree.c index ca86bb2725..e9a648ed80 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -844,7 +844,10 @@ static bool dirbrowse(void) | |||
844 | if (!tc.filesindir) | 844 | if (!tc.filesindir) |
845 | break; | 845 | break; |
846 | 846 | ||
847 | if (tc.dircursor) { | 847 | /* start scrolling when at 1/3 of the screen */ |
848 | if (tc.dircursor >= | ||
849 | tree_max_on_screen - (2 * tree_max_on_screen) / 3 | ||
850 | || (tc.dirstart == 0 && tc.dircursor > 0)) { | ||
848 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, false); | 851 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, false); |
849 | tc.dircursor--; | 852 | tc.dircursor--; |
850 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, true); | 853 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, true); |
@@ -906,7 +909,9 @@ static bool dirbrowse(void) | |||
906 | break; | 909 | break; |
907 | 910 | ||
908 | if (tc.dircursor + tc.dirstart + 1 < numentries ) { | 911 | if (tc.dircursor + tc.dirstart + 1 < numentries ) { |
909 | if(tc.dircursor+1 < tree_max_on_screen) { | 912 | /* start scrolling when at 2/3 of the screen */ |
913 | if(tc.dircursor < (2 * tree_max_on_screen) / 3 || | ||
914 | numentries - tc.dirstart <= tree_max_on_screen) { | ||
910 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, false); | 915 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, false); |
911 | tc.dircursor++; | 916 | tc.dircursor++; |
912 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, true); | 917 | put_cursorxy(CURSOR_X, CURSOR_Y + tc.dircursor, true); |