From e126153687c94f5dd901e085444cc60c394a1591 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Fri, 28 Oct 2011 17:09:38 +0000 Subject: Fix FS#12357 - New backdrop not displayed after set backdrop from context menu The loaded flag wasn't set and skin_backdrop_show() call was missing. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30846 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_backdrops.c | 19 ++++++++++--------- apps/onplay.c | 1 + 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/apps/gui/skin_engine/skin_backdrops.c b/apps/gui/skin_engine/skin_backdrops.c index 5d98e29128..4663a8756f 100644 --- a/apps/gui/skin_engine/skin_backdrops.c +++ b/apps/gui/skin_engine/skin_backdrops.c @@ -205,22 +205,23 @@ void skin_backdrop_load_setting(void) if (global_settings.backdrop_file[0] && global_settings.backdrop_file[0] != '-') { - if (!backdrops[i].buffer) + if (!backdrops[i].buflib_handle <= 0) { - bool loaded; backdrops[i].buflib_handle = core_alloc_ex(global_settings.backdrop_file, LCD_BACKDROP_BYTES, &buflib_ops); if (backdrops[i].buflib_handle < 0) return; - backdrops[i].buffer = core_get_data(backdrops[i].buflib_handle); - handle_being_loaded = backdrops[i].buflib_handle; - loaded = screens[SCREEN_MAIN].backdrop_load( - global_settings.backdrop_file, - backdrops[i].buffer); - handle_being_loaded = -1; - backdrops[i].name[2] = loaded ? '.' : '\0'; } + bool loaded; + backdrops[i].buffer = core_get_data(backdrops[i].buflib_handle); + handle_being_loaded = backdrops[i].buflib_handle; + loaded = screens[SCREEN_MAIN].backdrop_load( + global_settings.backdrop_file, + backdrops[i].buffer); + handle_being_loaded = -1; + backdrops[i].name[2] = loaded ? '.' : '\0'; + backdrops[i].loaded = loaded; return; } else diff --git a/apps/onplay.c b/apps/onplay.c index 84d9b11678..aab023c846 100644 --- a/apps/onplay.c +++ b/apps/onplay.c @@ -1043,6 +1043,7 @@ static bool set_backdrop(void) sizeof(global_settings.backdrop_file)); settings_save(); skin_backdrop_load_setting(); + skin_backdrop_show(sb_get_backdrop(SCREEN_MAIN)); return true; } MENUITEM_FUNCTION(set_backdrop_item, 0, ID2P(LANG_SET_AS_BACKDROP), -- cgit v1.2.3