diff options
-rw-r--r-- | apps/tree.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/apps/tree.c b/apps/tree.c index a6308b4391..cef63a0b96 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -358,7 +358,6 @@ bool dirbrowse(char *root) | |||
358 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); | 358 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); |
359 | dircursor--; | 359 | dircursor--; |
360 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); | 360 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); |
361 | lcd_update(); | ||
362 | } | 361 | } |
363 | else { | 362 | else { |
364 | if (start) { | 363 | if (start) { |
@@ -366,7 +365,21 @@ bool dirbrowse(char *root) | |||
366 | numentries = showdir(currdir, start); | 365 | numentries = showdir(currdir, start); |
367 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); | 366 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); |
368 | } | 367 | } |
368 | else { | ||
369 | if (numentries < TREE_MAX_ON_SCREEN) { | ||
370 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); | ||
371 | dircursor = numentries - 1; | ||
372 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); | ||
373 | } | ||
374 | else { | ||
375 | start = numentries - TREE_MAX_ON_SCREEN; | ||
376 | dircursor = TREE_MAX_ON_SCREEN - 1; | ||
377 | numentries = showdir(currdir, start); | ||
378 | put_cursorxy(0, CURSOR_Y + LINE_Y + TREE_MAX_ON_SCREEN - 1, true); | ||
379 | } | ||
380 | } | ||
369 | } | 381 | } |
382 | lcd_update(); | ||
370 | break; | 383 | break; |
371 | 384 | ||
372 | case TREE_NEXT: | 385 | case TREE_NEXT: |
@@ -382,6 +395,19 @@ bool dirbrowse(char *root) | |||
382 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); | 395 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); |
383 | } | 396 | } |
384 | } | 397 | } |
398 | else { | ||
399 | if(numentries < TREE_MAX_ON_SCREEN) { | ||
400 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); | ||
401 | start = dircursor = 0; | ||
402 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); | ||
403 | } | ||
404 | else { | ||
405 | start = dircursor = 0; | ||
406 | numentries = showdir(currdir, start); | ||
407 | put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); | ||
408 | } | ||
409 | } | ||
410 | lcd_update(); | ||
385 | break; | 411 | break; |
386 | 412 | ||
387 | case TREE_MENU: { | 413 | case TREE_MENU: { |