From 8d453ae9c3beef82bd61401af6216f74a400cbd0 Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Mon, 20 Dec 2021 20:12:03 +0100 Subject: Fix glitches with custom list title viewports Elements were not being drawn correctly or title text appeared delayed in several places when using themes with a custom viewport for list titles. E.g.: - after deleting a shortcut - when returning from a warning screen in Playlist Viewer - returning to some Settings screens - in "Playing time" screen Change-Id: I8ab07a31d4b6f290e089ecd7857f43ec195a06e0 --- apps/menu.c | 2 ++ apps/onplay.c | 1 + apps/playlist_viewer.c | 2 ++ apps/shortcuts.c | 4 ++++ 4 files changed, 9 insertions(+) diff --git a/apps/menu.c b/apps/menu.c index 802a16bbb8..ab5578dede 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -738,6 +738,8 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, if (menu_callback(ACTION_REDRAW, menu, &lists) != ACTION_REDRAW) continue; + + gui_synclist_set_title(&lists, lists.title, lists.title_icon); gui_synclist_draw(&lists); gui_synclist_speak_item(&lists); } diff --git a/apps/onplay.c b/apps/onplay.c index 61ef8acad5..ee183450fa 100644 --- a/apps/onplay.c +++ b/apps/onplay.c @@ -425,6 +425,7 @@ static bool playing_time(void) if (global_settings.talk_menu) gui_synclist_set_voice_callback(&pt_lists, playing_time_speak_info); gui_synclist_set_nb_items(&pt_lists, 8); + gui_synclist_set_title(&pt_lists, str(LANG_PLAYING_TIME), NOICON); gui_synclist_draw(&pt_lists); gui_synclist_speak_item(&pt_lists); while (true) { diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index b0f30ea8a1..6ebac1cb41 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c @@ -826,6 +826,7 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename) int start_index = current_track->index; if (!warn_on_pl_erase()) { + gui_synclist_set_title(&playlist_lists, playlist_lists.title, playlist_lists.title_icon); gui_synclist_draw(&playlist_lists); break; } @@ -875,6 +876,7 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename) gui_synclist_set_icon_callback(&playlist_lists, global_settings.playlist_viewer_icons? &playlist_callback_icons:NULL); + gui_synclist_set_title(&playlist_lists, playlist_lists.title, playlist_lists.title_icon); gui_synclist_draw(&playlist_lists); gui_synclist_speak_item(&playlist_lists); break; diff --git a/apps/shortcuts.c b/apps/shortcuts.c index 9f042a926a..f573d6fe4e 100644 --- a/apps/shortcuts.c +++ b/apps/shortcuts.c @@ -451,10 +451,14 @@ static int shortcut_menu_get_action(int action, struct gui_synclist *lists) int selection = gui_synclist_get_sel_pos(lists); if (!yesno_pop(ID2P(LANG_REALLY_DELETE))) + { + gui_synclist_set_title(lists, lists->title, lists->title_icon); return ACTION_REDRAW; + } remove_shortcut(selection); gui_synclist_set_nb_items(lists, shortcut_count); + gui_synclist_set_title(lists, lists->title, lists->title_icon); if (selection >= shortcut_count) gui_synclist_select_item(lists, shortcut_count - 1); first_idx_to_writeback = 0; -- cgit v1.2.3