summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/bookmark.c4
-rw-r--r--apps/gui/option_select.c2
-rw-r--r--apps/gui/quickscreen.c7
-rw-r--r--apps/gui/usb_screen.c2
-rw-r--r--apps/menus/playlist_menu.c2
-rw-r--r--apps/menus/time_menu.c2
-rw-r--r--apps/misc.c5
-rw-r--r--apps/misc.h8
-rw-r--r--apps/onplay.c33
-rw-r--r--apps/playlist_viewer.c11
-rw-r--r--apps/plugin.c2
-rw-r--r--apps/plugins/pitch_screen.c2
-rw-r--r--apps/radio/radio.c2
-rw-r--r--apps/recorder/recording.c2
-rw-r--r--apps/root_menu.c49
-rw-r--r--apps/screens.c2
-rw-r--r--apps/shortcuts.c5
-rw-r--r--apps/tree.c11
18 files changed, 119 insertions, 32 deletions
diff --git a/apps/bookmark.c b/apps/bookmark.c
index 68c10b36e7..64a4b9f761 100644
--- a/apps/bookmark.c
+++ b/apps/bookmark.c
@@ -1122,7 +1122,7 @@ int bookmark_load_menu(void)
1122 } 1122 }
1123 } 1123 }
1124 1124
1125 pop_current_activity(); 1125 pop_current_activity(ACTIVITY_REFRESH_NOW);
1126 return ret; 1126 return ret;
1127} 1127}
1128 1128
@@ -1143,7 +1143,7 @@ bool bookmark_mrb_load()
1143 ret = play_bookmark(bookmark); 1143 ret = play_bookmark(bookmark);
1144 } 1144 }
1145 1145
1146 pop_current_activity(); 1146 pop_current_activity(ACTIVITY_REFRESH_NOW);
1147 return ret; 1147 return ret;
1148} 1148}
1149 1149
diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c
index ca16b5b05f..918335d6cd 100644
--- a/apps/gui/option_select.c
+++ b/apps/gui/option_select.c
@@ -574,7 +574,7 @@ bool option_screen(const struct settings_list *setting,
574 if (function == sound_get_fn(SOUND_VOLUME)) 574 if (function == sound_get_fn(SOUND_VOLUME))
575 global_status.last_volume_change = current_tick; 575 global_status.last_volume_change = current_tick;
576 } 576 }
577 pop_current_activity(); 577 pop_current_activity(ACTIVITY_REFRESH_NOW);
578 return false; 578 return false;
579} 579}
580 580
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c
index 141eb1a16b..1f32dca544 100644
--- a/apps/gui/quickscreen.c
+++ b/apps/gui/quickscreen.c
@@ -406,10 +406,13 @@ static int gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter
406 { /* stop scrolling before exiting */ 406 { /* stop scrolling before exiting */
407 for (int j = 0; j < QUICKSCREEN_ITEM_COUNT; j++) 407 for (int j = 0; j < QUICKSCREEN_ITEM_COUNT; j++)
408 screens[i].scroll_stop_viewport(&vps[i][j]); 408 screens[i].scroll_stop_viewport(&vps[i][j]);
409 viewportmanager_theme_undo(i, true); 409 viewportmanager_theme_undo(i, !(ret & QUICKSCREEN_GOTO_SHORTCUTS_MENU));
410 } 410 }
411 411
412 pop_current_activity(); 412 if (ret & QUICKSCREEN_GOTO_SHORTCUTS_MENU) /* Eliminate flashing of parent during */
413 pop_current_activity(ACTIVITY_REFRESH_DEFERRED); /* transition to Shortcuts */
414 else
415 pop_current_activity(ACTIVITY_REFRESH_NOW);
413 416
414 return ret; 417 return ret;
415} 418}
diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c
index 31321ec005..05e60067e0 100644
--- a/apps/gui/usb_screen.c
+++ b/apps/gui/usb_screen.c
@@ -315,5 +315,5 @@ void gui_usb_screen_run(bool early_usb)
315 viewportmanager_theme_undo(i, false); 315 viewportmanager_theme_undo(i, false);
316 } 316 }
317 317
318 pop_current_activity(); 318 pop_current_activity(ACTIVITY_REFRESH_NOW);
319} 319}
diff --git a/apps/menus/playlist_menu.c b/apps/menus/playlist_menu.c
index 89c93edc2e..981ec74798 100644
--- a/apps/menus/playlist_menu.c
+++ b/apps/menus/playlist_menu.c
@@ -138,6 +138,8 @@ int save_playlist_screen(struct playlist_info* playlist)
138static int playlist_view_(void) 138static int playlist_view_(void)
139{ 139{
140 playlist_viewer_ex(NULL, NULL); 140 playlist_viewer_ex(NULL, NULL);
141 FOR_NB_SCREENS(i) /* Playlist Viewer defers skin updates when popping its activity */
142 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL);
141 return 0; 143 return 0;
142} 144}
143MENUITEM_FUNCTION(create_playlist_item, 0, ID2P(LANG_CREATE_PLAYLIST), 145MENUITEM_FUNCTION(create_playlist_item, 0, ID2P(LANG_CREATE_PLAYLIST),
diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c
index e37e2b5637..b44d47ff8b 100644
--- a/apps/menus/time_menu.c
+++ b/apps/menus/time_menu.c
@@ -304,7 +304,7 @@ int time_screen(void* ignored)
304#endif 304#endif
305 305
306 ret = do_menu(&time_menu, NULL, menu, false); 306 ret = do_menu(&time_menu, NULL, menu, false);
307 pop_current_activity(); 307 pop_current_activity(ACTIVITY_REFRESH_NOW);
308 /* see comments above in the button callback */ 308 /* see comments above in the button callback */
309 if (!menu_was_pressed && ret == GO_TO_PREVIOUS) 309 if (!menu_was_pressed && ret == GO_TO_PREVIOUS)
310 return 0; 310 return 0;
diff --git a/apps/misc.c b/apps/misc.c
index 950662d19a..7da3c57c73 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -1579,13 +1579,14 @@ void push_current_activity(enum current_activity screen)
1579 } 1579 }
1580} 1580}
1581 1581
1582void pop_current_activity(void) 1582void pop_current_activity(enum activity_refresh refresh)
1583{ 1583{
1584 current_activity_top--; 1584 current_activity_top--;
1585 FOR_NB_SCREENS(i) 1585 FOR_NB_SCREENS(i)
1586 { 1586 {
1587 skinlist_set_cfg(i, NULL); 1587 skinlist_set_cfg(i, NULL);
1588 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL); 1588 if (ACTIVITY_REFRESH_NOW == refresh)
1589 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL);
1589 } 1590 }
1590} 1591}
1591enum current_activity get_current_activity(void) 1592enum current_activity get_current_activity(void)
diff --git a/apps/misc.h b/apps/misc.h
index af520a7fd1..4f4527f686 100644
--- a/apps/misc.h
+++ b/apps/misc.h
@@ -214,8 +214,14 @@ struct mp3entry;
214int id3_get_replaygain_mode(const struct mp3entry *id3); 214int id3_get_replaygain_mode(const struct mp3entry *id3);
215void replaygain_update(void); 215void replaygain_update(void);
216 216
217enum activity_refresh
218{
219 ACTIVITY_REFRESH_DEFERRED = 0,
220 ACTIVITY_REFRESH_NOW,
221};
222
217void push_current_activity(enum current_activity screen); 223void push_current_activity(enum current_activity screen);
218void pop_current_activity(void); 224void pop_current_activity(enum activity_refresh refresh);
219enum current_activity get_current_activity(void); 225enum current_activity get_current_activity(void);
220 226
221/* format a sound value like: -1.05 dB */ 227/* format a sound value like: -1.05 dB */
diff --git a/apps/onplay.c b/apps/onplay.c
index f2dbf8b3bf..7ea6b9035b 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -144,6 +144,15 @@ static bool clipboard_clip(struct clipboard *clip, const char *path,
144/* interface function. */ 144/* interface function. */
145/* ----------------------------------------------------------------------- */ 145/* ----------------------------------------------------------------------- */
146 146
147
148static int bookmark_load_menu_wrapper(void)
149{
150 if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* get rid of parent activity */
151 pop_current_activity(ACTIVITY_REFRESH_DEFERRED); /* when called from ctxt menu */
152
153 return bookmark_load_menu();
154}
155
147static int bookmark_menu_callback(int action, 156static int bookmark_menu_callback(int action,
148 const struct menu_item_ex *this_item, 157 const struct menu_item_ex *this_item,
149 struct gui_synclist *this_list); 158 struct gui_synclist *this_list);
@@ -153,7 +162,7 @@ MENUITEM_FUNCTION(bookmark_create_menu_item, 0,
153 bookmark_menu_callback, Icon_Bookmark); 162 bookmark_menu_callback, Icon_Bookmark);
154MENUITEM_FUNCTION(bookmark_load_menu_item, 0, 163MENUITEM_FUNCTION(bookmark_load_menu_item, 0,
155 ID2P(LANG_BOOKMARK_MENU_LIST), 164 ID2P(LANG_BOOKMARK_MENU_LIST),
156 bookmark_load_menu, NULL, 165 bookmark_load_menu_wrapper, NULL,
157 bookmark_menu_callback, Icon_Bookmark); 166 bookmark_menu_callback, Icon_Bookmark);
158MAKE_ONPLAYMENU(bookmark_menu, ID2P(LANG_BOOKMARK_MENU), 167MAKE_ONPLAYMENU(bookmark_menu, ID2P(LANG_BOOKMARK_MENU),
159 bookmark_menu_callback, Icon_Bookmark, 168 bookmark_menu_callback, Icon_Bookmark,
@@ -462,7 +471,18 @@ static bool save_playlist(void)
462 return false; 471 return false;
463} 472}
464 473
465extern struct menu_item_ex view_cur_playlist; /* from playlist_menu.c */ 474static int wps_view_cur_playlist(void)
475{
476 if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* get rid of parent activity */
477 pop_current_activity(ACTIVITY_REFRESH_DEFERRED); /* when called from ctxt menu */
478
479 playlist_viewer_ex(NULL, NULL);
480
481 return 0;
482}
483
484MENUITEM_FUNCTION(wps_view_cur_playlist_item, 0, ID2P(LANG_VIEW_DYNAMIC_PLAYLIST),
485 wps_view_cur_playlist, NULL, NULL, Icon_NOICON);
466MENUITEM_FUNCTION(search_playlist_item, 0, ID2P(LANG_SEARCH_IN_PLAYLIST), 486MENUITEM_FUNCTION(search_playlist_item, 0, ID2P(LANG_SEARCH_IN_PLAYLIST),
467 search_playlist, NULL, NULL, Icon_Playlist); 487 search_playlist, NULL, NULL, Icon_Playlist);
468MENUITEM_FUNCTION(playlist_save_item, 0, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), 488MENUITEM_FUNCTION(playlist_save_item, 0, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST),
@@ -473,7 +493,7 @@ MENUITEM_FUNCTION(playing_time_item, 0, ID2P(LANG_PLAYING_TIME),
473 playing_time, NULL, NULL, Icon_Playlist); 493 playing_time, NULL, NULL, Icon_Playlist);
474MAKE_ONPLAYMENU( wps_playlist_menu, ID2P(LANG_PLAYLIST), 494MAKE_ONPLAYMENU( wps_playlist_menu, ID2P(LANG_PLAYLIST),
475 NULL, Icon_Playlist, 495 NULL, Icon_Playlist,
476 &view_cur_playlist, &search_playlist_item, 496 &wps_view_cur_playlist_item, &search_playlist_item,
477 &playlist_save_item, &reshuffle_item, &playing_time_item 497 &playlist_save_item, &reshuffle_item, &playing_time_item
478 ); 498 );
479 499
@@ -1499,6 +1519,9 @@ MENUITEM_FUNCTION(view_cue_item, 0, ID2P(LANG_BROWSE_CUESHEET),
1499 1519
1500static int browse_id3_wrapper(void) 1520static int browse_id3_wrapper(void)
1501{ 1521{
1522 if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* get rid of parent activity */
1523 pop_current_activity(ACTIVITY_REFRESH_DEFERRED); /* when called from ctxt menu */
1524
1502 if (browse_id3(audio_current_track(), 1525 if (browse_id3(audio_current_track(),
1503 playlist_get_display_index(), 1526 playlist_get_display_index(),
1504 playlist_amount())) 1527 playlist_amount()))
@@ -1954,7 +1977,9 @@ int onplay(char* file, int attr, int from, bool hotkey)
1954 else 1977 else
1955 menu = &tree_onplay_menu; 1978 menu = &tree_onplay_menu;
1956 menu_selection = do_menu(menu, NULL, NULL, false); 1979 menu_selection = do_menu(menu, NULL, NULL, false);
1957 pop_current_activity(); 1980
1981 if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* Activity may have been */
1982 pop_current_activity(ACTIVITY_REFRESH_NOW); /* popped already by menu item */
1958 1983
1959 switch (menu_selection) 1984 switch (menu_selection)
1960 { 1985 {
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c
index 4abd3ee1c5..90a47c35ea 100644
--- a/apps/playlist_viewer.c
+++ b/apps/playlist_viewer.c
@@ -1015,7 +1015,14 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename,
1015 case ACTION_STD_QUICKSCREEN: 1015 case ACTION_STD_QUICKSCREEN:
1016 if (!global_settings.shortcuts_replaces_qs) 1016 if (!global_settings.shortcuts_replaces_qs)
1017 { 1017 {
1018 quick_screen_quick(button); 1018 if (quick_screen_quick(button) ==
1019 QUICKSCREEN_GOTO_SHORTCUTS_MENU) /* currently disabled */
1020 {
1021 /* QuickScreen defers skin updates when popping its activity
1022 to switch to Shortcuts Menu, so make up for that here: */
1023 FOR_NB_SCREENS(i)
1024 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL);
1025 }
1019 update_playlist(true); 1026 update_playlist(true);
1020 prepare_lists(&playlist_lists); 1027 prepare_lists(&playlist_lists);
1021 } 1028 }
@@ -1092,7 +1099,7 @@ exit:
1092static void close_playlist_viewer(void) 1099static void close_playlist_viewer(void)
1093{ 1100{
1094 talk_shutup(); 1101 talk_shutup();
1095 pop_current_activity(); 1102 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
1096 if (viewer.playlist) 1103 if (viewer.playlist)
1097 { 1104 {
1098 if (viewer.initial_selection) 1105 if (viewer.initial_selection)
diff --git a/apps/plugin.c b/apps/plugin.c
index 128b52ea2d..b8897c95ee 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -919,7 +919,7 @@ int plugin_load(const char* plugin, const void* parameter)
919 int rc = p_hdr->entry_point(parameter); 919 int rc = p_hdr->entry_point(parameter);
920 920
921 tree_unlock_cache(tree_get_context()); 921 tree_unlock_cache(tree_get_context());
922 pop_current_activity(); 922 pop_current_activity(ACTIVITY_REFRESH_NOW);
923 923
924 if (!pfn_tsr_exit) 924 if (!pfn_tsr_exit)
925 { /* close handle if plugin is no tsr one */ 925 { /* close handle if plugin is no tsr one */
diff --git a/apps/plugins/pitch_screen.c b/apps/plugins/pitch_screen.c
index e24e0240a2..76e7fa9775 100644
--- a/apps/plugins/pitch_screen.c
+++ b/apps/plugins/pitch_screen.c
@@ -1109,7 +1109,7 @@ int gui_syncpitchscreen_run(void)
1109 } 1109 }
1110 1110
1111 //rb->pcmbuf_set_low_latency(false); 1111 //rb->pcmbuf_set_low_latency(false);
1112 //pop_current_activity(); 1112 //pop_current_activity(ACTIVITY_REFRESH_NOW);
1113 1113
1114 /* Clean up */ 1114 /* Clean up */
1115 FOR_NB_SCREENS(i) 1115 FOR_NB_SCREENS(i)
diff --git a/apps/radio/radio.c b/apps/radio/radio.c
index bf8ad865dd..a02d4429fa 100644
--- a/apps/radio/radio.c
+++ b/apps/radio/radio.c
@@ -729,7 +729,7 @@ void radio_screen(void)
729 cpu_idle_mode(false); 729 cpu_idle_mode(false);
730#endif 730#endif
731 fms_fix_displays(FMS_EXIT); 731 fms_fix_displays(FMS_EXIT);
732 pop_current_activity(); 732 pop_current_activity(ACTIVITY_REFRESH_NOW);
733 in_screen = false; 733 in_screen = false;
734} /* radio_screen */ 734} /* radio_screen */
735 735
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index 6c52adf5d3..374583cc21 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -1844,7 +1844,7 @@ rec_abort:
1844#endif 1844#endif
1845 1845
1846 settings_save(); 1846 settings_save();
1847 pop_current_activity(); 1847 pop_current_activity(ACTIVITY_REFRESH_NOW);
1848 return (rec_status & RCSTAT_BEEN_IN_USB_MODE) != 0; 1848 return (rec_status & RCSTAT_BEEN_IN_USB_MODE) != 0;
1849} /* recording_screen */ 1849} /* recording_screen */
1850 1850
diff --git a/apps/root_menu.c b/apps/root_menu.c
index 80b5be1d36..3553b794fa 100644
--- a/apps/root_menu.c
+++ b/apps/root_menu.c
@@ -276,7 +276,14 @@ static int browser(void* param)
276 276
277 browse_context_init(&browse, filter, 0, NULL, NOICON, folder, NULL); 277 browse_context_init(&browse, filter, 0, NULL, NOICON, folder, NULL);
278 ret_val = rockbox_browse(&browse); 278 ret_val = rockbox_browse(&browse);
279 pop_current_activity(); 279
280 if (ret_val == GO_TO_WPS
281 || ret_val == GO_TO_PREVIOUS_MUSIC
282 || ret_val == GO_TO_PLUGIN)
283 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
284 else
285 pop_current_activity(ACTIVITY_REFRESH_NOW);
286
280 switch ((intptr_t)param) 287 switch ((intptr_t)param)
281 { 288 {
282 case GO_TO_FILEBROWSER: 289 case GO_TO_FILEBROWSER:
@@ -336,7 +343,23 @@ static int wpsscrn(void* param)
336 { 343 {
337 splash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME)); 344 splash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME));
338 } 345 }
339 pop_current_activity(); 346
347 if (ret_val == GO_TO_PLAYLIST_VIEWER
348 || ret_val == GO_TO_PLUGIN
349 || ret_val == GO_TO_WPS
350 || ret_val == GO_TO_PREVIOUS_MUSIC
351 || ret_val == GO_TO_PREVIOUS_BROWSER
352 || (ret_val == GO_TO_PREVIOUS
353 && (last_screen == GO_TO_MAINMENU /* Settings */
354 || last_screen == GO_TO_BROWSEPLUGINS
355 || last_screen == GO_TO_SYSTEM_SCREEN
356 || last_screen == GO_TO_PLAYLISTS_SCREEN)))
357 {
358 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
359 }
360 else
361 pop_current_activity(ACTIVITY_REFRESH_NOW);
362
340 return ret_val; 363 return ret_val;
341} 364}
342#if CONFIG_TUNER 365#if CONFIG_TUNER
@@ -370,10 +393,14 @@ static int playlist_view_catalog(void * param)
370 (void)param; 393 (void)param;
371 push_current_activity(ACTIVITY_PLAYLISTBROWSER); 394 push_current_activity(ACTIVITY_PLAYLISTBROWSER);
372 bool item_was_selected = catalog_view_playlists(); 395 bool item_was_selected = catalog_view_playlists();
373 pop_current_activity(); 396
374 if (item_was_selected) 397 if (item_was_selected)
398 {
399 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
375 return GO_TO_WPS; 400 return GO_TO_WPS;
376 return GO_TO_PREVIOUS; 401 }
402 pop_current_activity(ACTIVITY_REFRESH_NOW);
403 return GO_TO_ROOT;
377} 404}
378 405
379static int playlist_view(void * param) 406static int playlist_view(void * param)
@@ -381,9 +408,7 @@ static int playlist_view(void * param)
381 (void)param; 408 (void)param;
382 int val; 409 int val;
383 410
384 push_current_activity(ACTIVITY_PLAYLISTVIEWER);
385 val = playlist_viewer(); 411 val = playlist_viewer();
386 pop_current_activity();
387 switch (val) 412 switch (val)
388 { 413 {
389 case PLAYLIST_VIEWER_MAINMENU: 414 case PLAYLIST_VIEWER_MAINMENU:
@@ -682,7 +707,15 @@ static inline int load_screen(int screen)
682 ret_val = items[screen].function(items[screen].param); 707 ret_val = items[screen].function(items[screen].param);
683 708
684 if (activity != ACTIVITY_UNKNOWN) 709 if (activity != ACTIVITY_UNKNOWN)
685 pop_current_activity(); 710 {
711 if (ret_val == GO_TO_WPS
712 || ret_val == GO_TO_PREVIOUS_MUSIC)
713 {
714 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
715 }
716 else
717 pop_current_activity(ACTIVITY_REFRESH_NOW);
718 }
686 719
687 last_screen = screen; 720 last_screen = screen;
688 if (ret_val == GO_TO_PREVIOUS) 721 if (ret_val == GO_TO_PREVIOUS)
@@ -708,7 +741,7 @@ static int load_context_screen(int selection)
708 741
709 if (context_menu) 742 if (context_menu)
710 retval = do_menu(context_menu, NULL, NULL, false); 743 retval = do_menu(context_menu, NULL, NULL, false);
711 pop_current_activity(); 744 pop_current_activity(ACTIVITY_REFRESH_NOW);
712 return retval; 745 return retval;
713} 746}
714 747
diff --git a/apps/screens.c b/apps/screens.c
index db24e534c1..2ffdf68023 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -733,7 +733,7 @@ bool browse_id3(struct mp3entry *id3, int playlist_display_index, int playlist_a
733 } 733 }
734 } 734 }
735 735
736 pop_current_activity(); 736 pop_current_activity(ACTIVITY_REFRESH_NOW);
737 return ret; 737 return ret;
738} 738}
739 739
diff --git a/apps/shortcuts.c b/apps/shortcuts.c
index e52e38eb06..98edcf653e 100644
--- a/apps/shortcuts.c
+++ b/apps/shortcuts.c
@@ -718,7 +718,10 @@ int do_shortcut_menu(void *ignored)
718 } 718 }
719 } 719 }
720 } 720 }
721 pop_current_activity(); 721 if (GO_TO_PLUGIN == done)
722 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
723 else
724 pop_current_activity(ACTIVITY_REFRESH_NOW);
722 --buflib_move_lock; 725 --buflib_move_lock;
723 726
724 return done; 727 return done;
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 }