From 4839b7a2bcff636b49f74e7e3f12d3e7e7a6fd6f Mon Sep 17 00:00:00 2001 From: pontscho Date: Thu, 18 Apr 2002 21:24:42 +0000 Subject: fix skin loading bug git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5691 b3059339-0415-0410-9bf9-f77b7e298cf2 --- Gui/mplayer/gtk/sb.c | 17 ++++++++++++++--- Gui/mplayer/play.c | 2 +- Gui/skin/skin.c | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'Gui') diff --git a/Gui/mplayer/gtk/sb.c b/Gui/mplayer/gtk/sb.c index ac991eff44..6de1cf76b2 100644 --- a/Gui/mplayer/gtk/sb.c +++ b/Gui/mplayer/gtk/sb.c @@ -20,6 +20,7 @@ char * sbMPlayerDirInHome=NULL; char * sbMPlayerPrefixDir=NULL; char * gtkOldSkin; +static char * prev; int gtkFillSkinList( gchar * mdir ) { @@ -30,6 +31,7 @@ int gtkFillSkinList( gchar * mdir ) struct stat fs; gtkOldSkin=strdup( skinName ); + prev=gtkOldSkin; if ( ( str[0]=(char *)calloc( 1,7 ) ) == NULL ) { gtkMessageBox( GTK_MB_FATAL,MSGTR_SKINBROWSER_NotEnoughMemory ); @@ -64,7 +66,7 @@ void on_SkinBrowser_destroy( GtkObject * object,gpointer user_data ) void on_SkinBrowser_Cancel( GtkObject * object,gpointer user_data ) { - ChangeSkin( skinName ); + if ( strcmp( sbSelectedSkin,gtkOldSkin ) ) ChangeSkin( gtkOldSkin ); gtk_widget_hide( SkinBrowser ); } @@ -79,9 +81,18 @@ void on_SkinBrowser_Ok( GtkObject * object,gpointer user_data ) void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * bevent,gpointer user_data ) { gtk_clist_get_text( clist,row,0,&sbSelectedSkin ); - ChangeSkin( sbSelectedSkin ); + if ( strcmp( prev,sbSelectedSkin ) ) + { + prev=sbSelectedSkin; + ChangeSkin( sbSelectedSkin ); + } if( !bevent ) return; - if( bevent->type == GDK_2BUTTON_PRESS ) gtk_widget_hide( SkinBrowser ); + if( bevent->type == GDK_2BUTTON_PRESS ) + { + if ( skinName ) free( skinName ); + skinName=strdup( sbSelectedSkin ); + gtk_widget_hide( SkinBrowser ); + } } GtkWidget * create_SkinBrowser( void ) diff --git a/Gui/mplayer/play.c b/Gui/mplayer/play.c index eb0647cb83..e8fde2379b 100644 --- a/Gui/mplayer/play.c +++ b/Gui/mplayer/play.c @@ -141,7 +141,7 @@ listItems tmpList; void ChangeSkin( char * name ) { int ret; -// if ( !strcmp( skinName,name ) ) return; + mainVisible=0; appInitStruct( &tmpList ); diff --git a/Gui/skin/skin.c b/Gui/skin/skin.c index 9b17d23065..9021bd9bd2 100644 --- a/Gui/skin/skin.c +++ b/Gui/skin/skin.c @@ -612,7 +612,7 @@ int skinRead( char * dname ) mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] file: %s\n",fn ); - appInitStruct( &appMPlayer ); + appInitStruct( skinAppMPlayer ); linenumber=0; while ( !feof( skinFile ) ) -- cgit v1.2.3