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.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/gui/skin_engine/skin_engine.c b/apps/gui/skin_engine/skin_engine.c
index ce6c985e16..68d5c9c060 100644
--- a/apps/gui/skin_engine/skin_engine.c
+++ b/apps/gui/skin_engine/skin_engine.c
@@ -52,11 +52,12 @@ static struct gui_skin_helper {
52 int (*preproccess)(enum screen_type screen, struct wps_data *data); 52 int (*preproccess)(enum screen_type screen, struct wps_data *data);
53 int (*postproccess)(enum screen_type screen, struct wps_data *data); 53 int (*postproccess)(enum screen_type screen, struct wps_data *data);
54 char* (*default_skin)(enum screen_type screen); 54 char* (*default_skin)(enum screen_type screen);
55 bool load_on_boot;
55} skin_helpers[SKINNABLE_SCREENS_COUNT] = { 56} skin_helpers[SKINNABLE_SCREENS_COUNT] = {
56 [CUSTOM_STATUSBAR] = { sb_preproccess, sb_postproccess, sb_create_from_settings }, 57 [CUSTOM_STATUSBAR] = { sb_preproccess, sb_postproccess, sb_create_from_settings, true },
57 [WPS] = { NULL, NULL, wps_default_skin }, 58 [WPS] = { NULL, NULL, wps_default_skin, true },
58#if CONFIG_TUNER 59#if CONFIG_TUNER
59 [FM_SCREEN] = { NULL, NULL, default_radio_skin } 60 [FM_SCREEN] = { NULL, NULL, default_radio_skin, false }
60#endif 61#endif
61}; 62};
62 63
@@ -155,14 +156,14 @@ void settings_apply_skins(void)
155 } 156 }
156 gui_skin_reset(&skins[i][j]); 157 gui_skin_reset(&skins[i][j]);
157 skins[i][j].gui_wps.display = &screens[j]; 158 skins[i][j].gui_wps.display = &screens[j];
158 skin_get_gwps(i, j); 159 if (skin_helpers[i].load_on_boot)
160 skin_get_gwps(i, j);
159 } 161 }
160 } 162 }
161 } 163 }
162 first_run = false; 164 first_run = false;
163 viewportmanager_theme_changed(THEME_STATUSBAR); 165 viewportmanager_theme_changed(THEME_STATUSBAR);
164#ifdef HAVE_BACKDROP_IMAGE 166#ifdef HAVE_BACKDROP_IMAGE
165 skin_backdrops_preload(); /* should maybe check the retval here... */
166 FOR_NB_SCREENS(i) 167 FOR_NB_SCREENS(i)
167 skin_backdrop_show(sb_get_backdrop(i)); 168 skin_backdrop_show(sb_get_backdrop(i));
168#endif 169#endif
@@ -191,6 +192,10 @@ void skin_load(enum skinnable_screens skin, enum screen_type screen,
191 skins[skin][screen].needs_full_update = true; 192 skins[skin][screen].needs_full_update = true;
192 if (skin_helpers[skin].postproccess) 193 if (skin_helpers[skin].postproccess)
193 skin_helpers[skin].postproccess(screen, &skins[skin][screen].data); 194 skin_helpers[skin].postproccess(screen, &skins[skin][screen].data);
195#ifdef HAVE_BACKDROP_IMAGE
196 if (loaded)
197 skin_backdrops_preload();
198#endif
194} 199}
195 200
196static char* get_skin_filename(char *buf, size_t buf_size, 201static char* get_skin_filename(char *buf, size_t buf_size,