diff options
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r-- | apps/gui/skin_engine/skin_engine.c | 25 |
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; |