[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rockbox-cvs
Subject:    jdgordon: r30614 - in trunk/apps/gui: . skin_engine
From:       mailer () svn ! rockbox ! org
Date:       2011-09-28 1:02:48
Message-ID: 201109280102.p8S12mOQ006211 () giant ! haxx ! se
[Download RAW message or body]

Date: 2011-09-28 03:02:48 +0200 (Wed, 28 Sep 2011)
New Revision: 30614

Log Message:
fix FS#12295

Modified:
   trunk/apps/gui/skin_engine/skin_engine.c
   trunk/apps/gui/skin_engine/skin_engine.h
   trunk/apps/gui/skin_engine/skin_parser.c
   trunk/apps/gui/usb_screen.c

Modified: trunk/apps/gui/skin_engine/skin_engine.c
===================================================================
--- trunk/apps/gui/skin_engine/skin_engine.c	2011-09-27 21:06:12 UTC (rev 30613)
+++ trunk/apps/gui/skin_engine/skin_engine.c	2011-09-28 01:02:48 UTC (rev 30614)
@@ -129,7 +129,7 @@
     }
 }
 
-void settings_apply_skins(void)
+void skin_unload_all(void)
 {
     int i, j;
 
@@ -140,12 +140,17 @@
     }
 
     skin_buffer_init(skin_buffer, skin_buffer_size);
-    
 #ifdef HAVE_LCD_BITMAP
     skin_backdrop_init();
 #endif
     gui_sync_skin_init();
+}
 
+void settings_apply_skins(void)
+{
+    int i, j;
+
+    skin_unload_all();
     /* Make sure each skin is loaded */
     for (i=0; i<SKINNABLE_SCREENS_COUNT; i++)
     {

Modified: trunk/apps/gui/skin_engine/skin_engine.h
===================================================================
--- trunk/apps/gui/skin_engine/skin_engine.h	2011-09-27 21:06:12 UTC (rev 30613)
+++ trunk/apps/gui/skin_engine/skin_engine.h	2011-09-28 01:02:48 UTC (rev 30614)
@@ -100,6 +100,7 @@
 struct wps_state *skin_get_global_state(void);
 void gui_sync_skin_init(void);
 
+void skin_unload_all(void);
 
 bool skin_do_full_update(enum skinnable_screens skin, enum screen_type screen);
 void skin_request_full_update(enum skinnable_screens skin);

Modified: trunk/apps/gui/skin_engine/skin_parser.c
===================================================================
--- trunk/apps/gui/skin_engine/skin_parser.c	2011-09-27 21:06:12 UTC (rev 30613)
+++ trunk/apps/gui/skin_engine/skin_parser.c	2011-09-28 01:02:48 UTC (rev 30614)
@@ -1452,11 +1452,13 @@
             core_free(img->buflib_handle);
         list = list->next;
     }
+    wps_data->images = NULL;
     if (wps_data->font_ids != NULL)
     {
         while (wps_data->font_count > 0)
             font_unload(wps_data->font_ids[--wps_data->font_count]);
     }
+    wps_data->font_ids = NULL;
 #endif
 #endif
 }

Modified: trunk/apps/gui/usb_screen.c
===================================================================
--- trunk/apps/gui/usb_screen.c	2011-09-27 21:06:12 UTC (rev 30613)
+++ trunk/apps/gui/usb_screen.c	2011-09-28 01:02:48 UTC (rev 30614)
@@ -38,6 +38,7 @@
 #include "led.h"
 #include "appevents.h"
 #include "usb_screen.h"
+#include "skin_engine/skin_engine.h"
 
 #ifdef HAVE_LCD_BITMAP
 #include "bitmaps/usblogo.h"
@@ -265,8 +266,11 @@
         /* The font system leaves the .fnt fd's open, so we need for force close them all */
 #ifdef HAVE_LCD_BITMAP
         FOR_NB_SCREENS(i)
+        {
             font_unload(global_status.font_id[i]);
-    // FIXME    skin_font_init(); /* unload all the skin fonts */
+            global_status.font_id[i] = -1;
+        }
+        skin_unload_all();
 #endif
     }
 

_______________________________________________
rockbox-cvs mailing list
rockbox-cvs@cool.haxx.se
http://cool.haxx.se/cgi-bin/mailman/listinfo/rockbox-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic