comparison Gui/mplayer/gtk/sb.c @ 5690:436cf6ef67fd

fix skin loading bug
author pontscho
date Thu, 18 Apr 2002 21:24:42 +0000
parents 3473ca9ef158
children 153fc4ed86ad
comparison
equal deleted inserted replaced
5689:2077782d0ca9 5690:436cf6ef67fd
18 char * sbSelectedSkin=NULL; 18 char * sbSelectedSkin=NULL;
19 char * sbMPlayerDirInHome=NULL; 19 char * sbMPlayerDirInHome=NULL;
20 char * sbMPlayerPrefixDir=NULL; 20 char * sbMPlayerPrefixDir=NULL;
21 21
22 char * gtkOldSkin; 22 char * gtkOldSkin;
23 static char * prev;
23 24
24 int gtkFillSkinList( gchar * mdir ) 25 int gtkFillSkinList( gchar * mdir )
25 { 26 {
26 gchar * str[2]; 27 gchar * str[2];
27 gchar * tmp; 28 gchar * tmp;
28 int i; 29 int i;
29 glob_t gg; 30 glob_t gg;
30 struct stat fs; 31 struct stat fs;
31 32
32 gtkOldSkin=strdup( skinName ); 33 gtkOldSkin=strdup( skinName );
34 prev=gtkOldSkin;
33 if ( ( str[0]=(char *)calloc( 1,7 ) ) == NULL ) 35 if ( ( str[0]=(char *)calloc( 1,7 ) ) == NULL )
34 { 36 {
35 gtkMessageBox( GTK_MB_FATAL,MSGTR_SKINBROWSER_NotEnoughMemory ); 37 gtkMessageBox( GTK_MB_FATAL,MSGTR_SKINBROWSER_NotEnoughMemory );
36 return 0; 38 return 0;
37 } 39 }
62 void on_SkinBrowser_destroy( GtkObject * object,gpointer user_data ) 64 void on_SkinBrowser_destroy( GtkObject * object,gpointer user_data )
63 { gtk_widget_hide( SkinBrowser ); } 65 { gtk_widget_hide( SkinBrowser ); }
64 66
65 void on_SkinBrowser_Cancel( GtkObject * object,gpointer user_data ) 67 void on_SkinBrowser_Cancel( GtkObject * object,gpointer user_data )
66 { 68 {
67 ChangeSkin( skinName ); 69 if ( strcmp( sbSelectedSkin,gtkOldSkin ) ) ChangeSkin( gtkOldSkin );
68 gtk_widget_hide( SkinBrowser ); 70 gtk_widget_hide( SkinBrowser );
69 } 71 }
70 72
71 void on_SkinBrowser_Ok( GtkObject * object,gpointer user_data ) 73 void on_SkinBrowser_Ok( GtkObject * object,gpointer user_data )
72 { 74 {
77 } 79 }
78 80
79 void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * bevent,gpointer user_data ) 81 void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * bevent,gpointer user_data )
80 { 82 {
81 gtk_clist_get_text( clist,row,0,&sbSelectedSkin ); 83 gtk_clist_get_text( clist,row,0,&sbSelectedSkin );
82 ChangeSkin( sbSelectedSkin ); 84 if ( strcmp( prev,sbSelectedSkin ) )
85 {
86 prev=sbSelectedSkin;
87 ChangeSkin( sbSelectedSkin );
88 }
83 if( !bevent ) return; 89 if( !bevent ) return;
84 if( bevent->type == GDK_2BUTTON_PRESS ) gtk_widget_hide( SkinBrowser ); 90 if( bevent->type == GDK_2BUTTON_PRESS )
91 {
92 if ( skinName ) free( skinName );
93 skinName=strdup( sbSelectedSkin );
94 gtk_widget_hide( SkinBrowser );
95 }
85 } 96 }
86 97
87 GtkWidget * create_SkinBrowser( void ) 98 GtkWidget * create_SkinBrowser( void )
88 { 99 {
89 GtkWidget * SkinBrowser; 100 GtkWidget * SkinBrowser;