diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2011-09-28 01:02:48 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2011-09-28 01:02:48 +0000 |
commit | 4f7a73aad84cf7b2f60b2975479281e65daaca69 (patch) | |
tree | 635066acc3d282b8a71e17668c578f50f7b42340 /apps/gui/skin_engine | |
parent | a1d3a1d14364425489db2b49d8e4a40f1b995b90 (diff) | |
download | rockbox-4f7a73aad84cf7b2f60b2975479281e65daaca69.tar.gz rockbox-4f7a73aad84cf7b2f60b2975479281e65daaca69.zip |
fix FS#12295
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30614 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine')
-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 |
3 files changed, 10 insertions, 2 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 | } |