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 );