Mercurial > mplayer.hg
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; |