summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Gui/mplayer/play.c2
-rw-r--r--Gui/skin/font.c12
-rw-r--r--Gui/skin/font.h2
3 files changed, 14 insertions, 2 deletions
diff --git a/Gui/mplayer/play.c b/Gui/mplayer/play.c
index 6942c31c70..912b7ee267 100644
--- a/Gui/mplayer/play.c
+++ b/Gui/mplayer/play.c
@@ -134,6 +134,8 @@ void ChangeSkin( void )
skinAppMPlayer=&tmpList;
ret=skinRead( gtkShMem->sb.name );
+ fntFreeFont();
+
appInitStruct( &tmpList );
skinAppMPlayer=&appMPlayer;
appInitStruct( &appMPlayer );
diff --git a/Gui/skin/font.c b/Gui/skin/font.c
index 7aef2ade3a..5c7dfab4e5 100644
--- a/Gui/skin/font.c
+++ b/Gui/skin/font.c
@@ -23,8 +23,18 @@ int fntAddNewFont( char * name )
return id;
}
-void fntFreeFont( int id )
+void fntFreeFont( void )
{
+ int i;
+ for( i=0;i<25;i++ )
+ {
+ if ( Fonts[i] )
+ {
+ if ( Fonts[i]->Bitmap.Image ) free( Fonts[i]->Bitmap.Image );
+ free( Fonts[i] );
+ Fonts[i]=NULL;
+ }
+ }
}
int fntRead( char * path,char * fname,int id )
diff --git a/Gui/skin/font.h b/Gui/skin/font.h
index 386a61438e..985286b6bf 100644
--- a/Gui/skin/font.h
+++ b/Gui/skin/font.h
@@ -22,7 +22,7 @@ extern txSample Bitmap;
extern bmpFont * Fonts[25];
extern int fntAddNewFont( char * name );
-extern void fntFreeFont( int id );
+extern void fntFreeFont( void );
extern int fntFindID( char * name );
extern int fntRead( char * path,char * fname,int id );