summaryrefslogtreecommitdiff
path: root/apps/tree.c
diff options
context:
space:
mode:
authorChristian Soffke <christian.soffke@gmail.com>2022-11-27 01:15:14 +0100
committerChristian Soffke <christian.soffke@gmail.com>2022-12-11 11:50:33 +0100
commitdfd9c10589d25a966c7e2e4dedab57c59a1987fd (patch)
treef65fcbefd97eff19ec3605aa1dfc161ad4221da6 /apps/tree.c
parent90d1ac044857781c4885da8cbfde62ece344fce3 (diff)
downloadrockbox-dfd9c10589d25a966c7e2e4dedab57c59a1987fd.tar.gz
rockbox-dfd9c10589d25a966c7e2e4dedab57c59a1987fd.zip
Eliminate skin updates in between activities
1) Adds way to pop activity without refreshing the skin at the same time. Activities are sometimes popped in immediate succession, or one activity is popped before another one is pushed right away. This can lead to the UI appearing glitchy, due to an activity only appearing for a split-second, which is especially noticeable with complex skins that change the dimensions of the UI viewport depending on the current activity To fix this, prevent superfluous skin updates * when switching between: - WPS and browser - WPS and Playlist Catalogue - WPS and playlist - WPS and Settings/System/Plugins * when accessing Track Info or when displaying bookmarks using the context menu on the WPS * when switching from QuickScreen to Shortcuts Menu 2) The playlist viewer activity was pushed & popped redundantly by playlist_view. ---- NB: Behavior has remained unchanged in all instances of the code where pop_current_activity() has been replaced by pop_current_activity(ACTIVITY_REFRESH_NOW). Change-Id: I56b517b8c9dba823a9fed3a3f558d7469dcea9fd
Diffstat (limited to 'apps/tree.c')
-rw-r--r--apps/tree.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/apps/tree.c b/apps/tree.c
index fa745319a9..3684e395a1 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -763,7 +763,7 @@ static int dirbrowse(void)
763 else if (ret == QUICKSCREEN_GOTO_SHORTCUTS_MENU) 763 else if (ret == QUICKSCREEN_GOTO_SHORTCUTS_MENU)
764 enter_shortcuts_menu = true; 764 enter_shortcuts_menu = true;
765 } 765 }
766 766
767 if (enter_shortcuts_menu && *tc.dirfilter < NUM_FILTER_MODES) 767 if (enter_shortcuts_menu && *tc.dirfilter < NUM_FILTER_MODES)
768 { 768 {
769 int last_screen = global_status.last_screen; 769 int last_screen = global_status.last_screen;
@@ -774,7 +774,14 @@ static int dirbrowse(void)
774 else 774 else
775 return shortcut_ret; 775 return shortcut_ret;
776 } 776 }
777 777 else if (enter_shortcuts_menu) /* currently disabled */
778 {
779 /* QuickScreen defers skin updates, popping its activity, when
780 switching to Shortcuts Menu, so make up for that here: */
781 FOR_NB_SCREENS(i)
782 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL);
783 }
784
778 restore = true; 785 restore = true;
779 break; 786 break;
780 } 787 }