diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/skin_engine/skin_engine.c | 9 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_engine.h | 1 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 2 | ||||
-rw-r--r-- | apps/gui/usb_screen.c | 6 |
4 files changed, 15 insertions, 3 deletions
diff --git a/apps/gui/skin_engine/skin_engine.c b/apps/gui/skin_engine/skin_engine.c index f96b91b427..89230cbcb3 100644 --- a/apps/gui/skin_engine/skin_engine.c +++ b/apps/gui/skin_engine/skin_engine.c | |||
@@ -129,7 +129,7 @@ void gui_sync_skin_init(void) | |||
129 | } | 129 | } |
130 | } | 130 | } |
131 | 131 | ||
132 | void settings_apply_skins(void) | 132 | void skin_unload_all(void) |
133 | { | 133 | { |
134 | int i, j; | 134 | int i, j; |
135 | 135 | ||
@@ -140,12 +140,17 @@ void settings_apply_skins(void) | |||
140 | } | 140 | } |
141 | 141 | ||
142 | skin_buffer_init(skin_buffer, skin_buffer_size); | 142 | skin_buffer_init(skin_buffer, skin_buffer_size); |
143 | |||
144 | #ifdef HAVE_LCD_BITMAP | 143 | #ifdef HAVE_LCD_BITMAP |
145 | skin_backdrop_init(); | 144 | skin_backdrop_init(); |
146 | #endif | 145 | #endif |
147 | gui_sync_skin_init(); | 146 | gui_sync_skin_init(); |
147 | } | ||
148 | |||
149 | void settings_apply_skins(void) | ||
150 | { | ||
151 | int i, j; | ||
148 | 152 | ||
153 | skin_unload_all(); | ||
149 | /* Make sure each skin is loaded */ | 154 | /* Make sure each skin is loaded */ |
150 | for (i=0; i<SKINNABLE_SCREENS_COUNT; i++) | 155 | for (i=0; i<SKINNABLE_SCREENS_COUNT; i++) |
151 | { | 156 | { |
diff --git a/apps/gui/skin_engine/skin_engine.h b/apps/gui/skin_engine/skin_engine.h index 310411bb1d..6338d7710a 100644 --- a/apps/gui/skin_engine/skin_engine.h +++ b/apps/gui/skin_engine/skin_engine.h | |||
@@ -100,6 +100,7 @@ struct gui_wps *skin_get_gwps(enum skinnable_screens skin, enum screen_type scre | |||
100 | struct wps_state *skin_get_global_state(void); | 100 | struct wps_state *skin_get_global_state(void); |
101 | void gui_sync_skin_init(void); | 101 | void gui_sync_skin_init(void); |
102 | 102 | ||
103 | void skin_unload_all(void); | ||
103 | 104 | ||
104 | bool skin_do_full_update(enum skinnable_screens skin, enum screen_type screen); | 105 | bool skin_do_full_update(enum skinnable_screens skin, enum screen_type screen); |
105 | void skin_request_full_update(enum skinnable_screens skin); | 106 | void skin_request_full_update(enum skinnable_screens skin); |
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 4d57fc1367..adebed2e35 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -1452,11 +1452,13 @@ void skin_data_free_buflib_allocs(struct wps_data *wps_data) | |||
1452 | core_free(img->buflib_handle); | 1452 | core_free(img->buflib_handle); |
1453 | list = list->next; | 1453 | list = list->next; |
1454 | } | 1454 | } |
1455 | wps_data->images = NULL; | ||
1455 | if (wps_data->font_ids != NULL) | 1456 | if (wps_data->font_ids != NULL) |
1456 | { | 1457 | { |
1457 | while (wps_data->font_count > 0) | 1458 | while (wps_data->font_count > 0) |
1458 | font_unload(wps_data->font_ids[--wps_data->font_count]); | 1459 | font_unload(wps_data->font_ids[--wps_data->font_count]); |
1459 | } | 1460 | } |
1461 | wps_data->font_ids = NULL; | ||
1460 | #endif | 1462 | #endif |
1461 | #endif | 1463 | #endif |
1462 | } | 1464 | } |
diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c index 2b3355021d..1d9fcec6e4 100644 --- a/apps/gui/usb_screen.c +++ b/apps/gui/usb_screen.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include "led.h" | 38 | #include "led.h" |
39 | #include "appevents.h" | 39 | #include "appevents.h" |
40 | #include "usb_screen.h" | 40 | #include "usb_screen.h" |
41 | #include "skin_engine/skin_engine.h" | ||
41 | 42 | ||
42 | #ifdef HAVE_LCD_BITMAP | 43 | #ifdef HAVE_LCD_BITMAP |
43 | #include "bitmaps/usblogo.h" | 44 | #include "bitmaps/usblogo.h" |
@@ -265,8 +266,11 @@ void gui_usb_screen_run(bool early_usb) | |||
265 | /* The font system leaves the .fnt fd's open, so we need for force close them all */ | 266 | /* The font system leaves the .fnt fd's open, so we need for force close them all */ |
266 | #ifdef HAVE_LCD_BITMAP | 267 | #ifdef HAVE_LCD_BITMAP |
267 | FOR_NB_SCREENS(i) | 268 | FOR_NB_SCREENS(i) |
269 | { | ||
268 | font_unload(global_status.font_id[i]); | 270 | font_unload(global_status.font_id[i]); |
269 | // FIXME skin_font_init(); /* unload all the skin fonts */ | 271 | global_status.font_id[i] = -1; |
272 | } | ||
273 | skin_unload_all(); | ||
270 | #endif | 274 | #endif |
271 | } | 275 | } |
272 | 276 | ||