diff options
Diffstat (limited to 'apps/tree.c')
-rw-r--r-- | apps/tree.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/apps/tree.c b/apps/tree.c index 6622e1c4c2..2bccefa7a1 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -72,6 +72,7 @@ | |||
72 | #include "list.h" | 72 | #include "list.h" |
73 | #include "splash.h" | 73 | #include "splash.h" |
74 | #include "quickscreen.h" | 74 | #include "quickscreen.h" |
75 | #include "shortcuts.h" | ||
75 | #include "appevents.h" | 76 | #include "appevents.h" |
76 | 77 | ||
77 | #include "root_menu.h" | 78 | #include "root_menu.h" |
@@ -751,19 +752,28 @@ static int dirbrowse(void) | |||
751 | break; | 752 | break; |
752 | #ifdef HAVE_QUICKSCREEN | 753 | #ifdef HAVE_QUICKSCREEN |
753 | case ACTION_STD_QUICKSCREEN: | 754 | case ACTION_STD_QUICKSCREEN: |
754 | if (global_settings.shortcuts_replaces_qs) | 755 | { |
755 | { | 756 | bool enter_shortcuts_menu = global_settings.shortcuts_replaces_qs; |
756 | if (*tc.dirfilter < NUM_FILTER_MODES) | 757 | if (enter_shortcuts_menu && *tc.dirfilter >= NUM_FILTER_MODES) |
757 | { | ||
758 | global_status.last_screen = GO_TO_SHORTCUTMENU; | ||
759 | return quick_screen_quick(button); | ||
760 | } | ||
761 | break; | 758 | break; |
759 | else if (!enter_shortcuts_menu) | ||
760 | { | ||
761 | int ret = quick_screen_quick(button); | ||
762 | if (ret == QUICKSCREEN_IN_USB) | ||
763 | reload_dir = true; | ||
764 | else if (ret == QUICKSCREEN_GOTO_SHORTCUTS_MENU) | ||
765 | enter_shortcuts_menu = true; | ||
762 | } | 766 | } |
763 | else if (quick_screen_quick(button)) | 767 | |
764 | reload_dir = true; | 768 | if (enter_shortcuts_menu && *tc.dirfilter < NUM_FILTER_MODES) |
769 | { | ||
770 | global_status.last_screen = GO_TO_SHORTCUTMENU; | ||
771 | return do_shortcut_menu(NULL); | ||
772 | } | ||
773 | |||
765 | restore = true; | 774 | restore = true; |
766 | break; | 775 | break; |
776 | } | ||
767 | #endif | 777 | #endif |
768 | 778 | ||
769 | #ifdef HAVE_HOTKEY | 779 | #ifdef HAVE_HOTKEY |