diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/tree.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/apps/tree.c b/apps/tree.c index a8f40f3d07..06b42b7c86 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -566,6 +566,7 @@ int dirbrowse() | |||
566 | bool need_update = true; | 566 | bool need_update = true; |
567 | bool exit_func = false; | 567 | bool exit_func = false; |
568 | long thumbnail_time = -1; /* for delaying a thumbnail */ | 568 | long thumbnail_time = -1; /* for delaying a thumbnail */ |
569 | long last_cancel = 0; | ||
569 | 570 | ||
570 | char* currdir = tc.currdir; /* just a shortcut */ | 571 | char* currdir = tc.currdir; /* just a shortcut */ |
571 | #ifdef HAVE_TAGCACHE | 572 | #ifdef HAVE_TAGCACHE |
@@ -646,8 +647,16 @@ int dirbrowse() | |||
646 | if ((*tc.dirfilter == SHOW_ID3DB && tc.dirlevel == 0) || | 647 | if ((*tc.dirfilter == SHOW_ID3DB && tc.dirlevel == 0) || |
647 | ((*tc.dirfilter != SHOW_ID3DB && !strcmp(currdir,"/")))) | 648 | ((*tc.dirfilter != SHOW_ID3DB && !strcmp(currdir,"/")))) |
648 | { | 649 | { |
649 | break; /* do nothing */ | 650 | if (last_cancel && TIME_BEFORE(current_tick, last_cancel+HZ/2)) |
651 | { | ||
652 | last_cancel = 0; | ||
653 | action_signalscreenchange(); /* eat the cancel presses */ | ||
654 | break; | ||
655 | } | ||
656 | else | ||
657 | return GO_TO_ROOT; | ||
650 | } | 658 | } |
659 | last_cancel = current_tick; | ||
651 | 660 | ||
652 | #ifdef HAVE_TAGCACHE | 661 | #ifdef HAVE_TAGCACHE |
653 | if (id3db) | 662 | if (id3db) |