summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/tree.c11
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)