summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2011-09-28 01:02:48 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2011-09-28 01:02:48 +0000
commit4f7a73aad84cf7b2f60b2975479281e65daaca69 (patch)
tree635066acc3d282b8a71e17668c578f50f7b42340 /apps
parenta1d3a1d14364425489db2b49d8e4a40f1b995b90 (diff)
downloadrockbox-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')
-rw-r--r--apps/gui/skin_engine/skin_engine.c9
-rw-r--r--apps/gui/skin_engine/skin_engine.h1
-rw-r--r--apps/gui/skin_engine/skin_parser.c2
-rw-r--r--apps/gui/usb_screen.c6
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
132void settings_apply_skins(void) 132void 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
149void 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
100struct wps_state *skin_get_global_state(void); 100struct wps_state *skin_get_global_state(void);
101void gui_sync_skin_init(void); 101void gui_sync_skin_init(void);
102 102
103void skin_unload_all(void);
103 104
104bool skin_do_full_update(enum skinnable_screens skin, enum screen_type screen); 105bool skin_do_full_update(enum skinnable_screens skin, enum screen_type screen);
105void skin_request_full_update(enum skinnable_screens skin); 106void 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