From b5d2c1eb5131a30f47a19a431b99134b493cc2ea Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Sun, 23 Mar 2025 21:55:56 +0100 Subject: [PATCH] Set as Backdrop: Show preview, asking for confirmation A new backdrop can make menus hard to read or navigate, so give user a chance to immediately cancel the backdrop adjustment. Change-Id: Ib2d1ad3888afeca18677a1bbdd2c3b404ed13463 --- apps/onplay.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/apps/onplay.c b/apps/onplay.c index a05cf8d37c..b076015b9e 100644 --- a/apps/onplay.c +++ b/apps/onplay.c @@ -906,14 +906,31 @@ static void set_dir_helper(char* dirnamebuf, size_t bufsz) } #if LCD_DEPTH > 1 -static bool set_backdrop(void) -{ - set_dir_helper(global_settings.backdrop_file, - sizeof(global_settings.backdrop_file)); +static void show_updated_backdrop(void) +{ skin_backdrop_load_setting(); viewportmanager_theme_changed(THEME_STATUSBAR); skin_backdrop_show(sb_get_backdrop(SCREEN_MAIN)); +} + +static bool set_backdrop(void) +{ + char previous_backdrop[sizeof global_settings.backdrop_file]; + strcpy(previous_backdrop, global_settings.backdrop_file); + + path_append(global_settings.backdrop_file, selected_file.path, + PA_SEP_HARD, sizeof(global_settings.backdrop_file)); + + show_updated_backdrop(); + + if (!yesno_pop(ID2P(LANG_SET_AS_BACKDROP))) { + strcpy(global_settings.backdrop_file, previous_backdrop); + show_updated_backdrop(); + } + else + settings_save(); + return true; } MENUITEM_FUNCTION(set_backdrop_item, 0, ID2P(LANG_SET_AS_BACKDROP),