summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine/skin_engine.c')
-rw-r--r--apps/gui/skin_engine/skin_engine.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/apps/gui/skin_engine/skin_engine.c b/apps/gui/skin_engine/skin_engine.c
index e28e4fbbf4..30ec0e75b8 100644
--- a/apps/gui/skin_engine/skin_engine.c
+++ b/apps/gui/skin_engine/skin_engine.c
@@ -139,29 +139,20 @@ void settings_apply_skins(void)
139 { 139 {
140 FOR_NB_SCREENS(j) 140 FOR_NB_SCREENS(j)
141 { 141 {
142 bool load = false;
143 get_skin_filename(filename, MAX_PATH, i,j); 142 get_skin_filename(filename, MAX_PATH, i,j);
144 143
145 if (filename[0] && (strcmp(filename, skins[i][j].filename) || skins[i][j].failsafe_loaded)) 144 if (!first_run)
146 load = true;
147 else if (first_run || (!filename[0] && !skins[i][j].failsafe_loaded))
148 load = true;
149
150 if (load)
151 { 145 {
152 if (!first_run) 146 skin_data_free_buflib_allocs(&skins[i][j].data);
153 {
154 skin_data_free_buflib_allocs(&skins[i][j].data);
155#ifdef HAVE_BACKDROP_IMAGE 147#ifdef HAVE_BACKDROP_IMAGE
156 if (skins[i][j].data.backdrop_id >= 0) 148 if (skins[i][j].data.backdrop_id >= 0)
157 skin_backdrop_unload(skins[i][j].data.backdrop_id); 149 skin_backdrop_unload(skins[i][j].data.backdrop_id);
158#endif 150#endif
159 }
160 gui_skin_reset(&skins[i][j]);
161 skins[i][j].gui_wps.display = &screens[j];
162 if (skin_helpers[i].load_on_boot)
163 skin_get_gwps(i, j);
164 } 151 }
152 gui_skin_reset(&skins[i][j]);
153 skins[i][j].gui_wps.display = &screens[j];
154 if (skin_helpers[i].load_on_boot)
155 skin_get_gwps(i, j);
165 } 156 }
166 } 157 }
167 first_run = false; 158 first_run = false;