summaryrefslogtreecommitdiffstats
path: root/Gui/mplayer/gtk/fs.c
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-20 13:56:16 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-20 13:56:16 +0000
commit4c6ce6a195af2807903f1ff0e0ee413ff6fd6081 (patch)
tree924db92b9fd062cfc64b5e82a3dfcad477b687bc /Gui/mplayer/gtk/fs.c
parentc7b919a1b9ed2ae2137cf12b996d6f0c0ff88ba4 (diff)
downloadmpv-4c6ce6a195af2807903f1ff0e0ee413ff6fd6081.tar.bz2
mpv-4c6ce6a195af2807903f1ff0e0ee413ff6fd6081.tar.xz
fix some gtk bug...
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6147 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui/mplayer/gtk/fs.c')
-rw-r--r--Gui/mplayer/gtk/fs.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/Gui/mplayer/gtk/fs.c b/Gui/mplayer/gtk/fs.c
index 9eb60ac3d7..a3ffb2f28d 100644
--- a/Gui/mplayer/gtk/fs.c
+++ b/Gui/mplayer/gtk/fs.c
@@ -38,6 +38,8 @@ int fsPressed = 0;
int fsMessage = -1;
int fsType = 0;
+int gtkVFileSelect = 0;
+
#define fsNumberOfVideoFilterNames 9
char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] =
{ { "MPEG files (*.mpg,*.mpeg)", "*.mpg,*.mpeg" },
@@ -186,7 +188,9 @@ static int FirstInit = 1;
void ShowFileSelect( int type )
{
int i;
- FileSelect=create_FileSelect();
+
+ if ( gtkVFileSelect ) gtkActive( fsFileSelect );
+ else fsFileSelect=create_FileSelect();
if ( FirstInit )
{
@@ -231,11 +235,15 @@ void ShowFileSelect( int type )
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsOtherFilterNames[fsNumberOfOtherFilterNames][0] );
break;
}
- gtk_widget_show( FileSelect );
+ gtk_widget_show( fsFileSelect );
}
void HideFileSelect( void )
-{ gtk_widget_destroy( fsFileSelect ); }
+{
+ gtk_widget_hide( fsFileSelect );
+ gtk_widget_destroy( fsFileSelect );
+ gtkVFileSelect=0;
+}
void fs_fsFileSelect_destroy( GtkObject * object,gpointer user_data )
{ HideFileSelect(); }
@@ -336,8 +344,6 @@ void fs_Ok_released( GtkButton * button,gpointer user_data )
return;
}
- HideFileSelect();
-
switch( fsPressed )
{
case 1:
@@ -346,7 +352,7 @@ void fs_Ok_released( GtkButton * button,gpointer user_data )
case 2:
str=gtk_entry_get_text( GTK_ENTRY( fsPathCombo ) );
fsSelectedFile=str;
- if ( !fsFileExist( fsSelectedFile ) ) return;
+ if ( !fsFileExist( fsSelectedFile ) ) { HideFileSelect(); return; }
fsSelectedDirectory=fsSelectedFile;
size=strlen( fsSelectedDirectory );
for ( j=0;j<size;j++ )
@@ -375,6 +381,9 @@ void fs_Ok_released( GtkButton * button,gpointer user_data )
guiSetDF( guiIntfStruct.Othername,fsSelectedDirectory,fsSelectedFile );
break;
}
+
+ HideFileSelect();
+
item=fsTopList_items;
while( item )
{
@@ -413,6 +422,9 @@ gboolean on_FileSelect_key_release_event( GtkWidget * widget,GdkEventKey * event
return FALSE;
}
+void fs_FileSelect_show( GtkWidget * widget,gpointer user_data )
+{ gtkVFileSelect=(int)user_data; }
+
GtkWidget * create_FileSelect( void )
{
GtkWidget * FSFrame;
@@ -639,6 +651,10 @@ GtkWidget * create_FileSelect( void )
gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"destroy",GTK_SIGNAL_FUNC( fs_fsFileSelect_destroy ),NULL );
gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"key_release_event",GTK_SIGNAL_FUNC( on_FileSelect_key_release_event ),NULL );
+
+ gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"show",GTK_SIGNAL_FUNC( fs_FileSelect_show ),1 );
+ gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"hide",GTK_SIGNAL_FUNC( fs_FileSelect_show ),0 );
+
gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsFilterCombo_changed ),fsFilterCombo );
gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"activate",GTK_SIGNAL_FUNC( fs_fsFilterCombo_activate ),fsFilterCombo );
gtk_signal_connect( GTK_OBJECT( fsPathCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsPathCombo_changed ),fsPathCombo );