diff --git a/Gui/mplayer/psignal.c b/Gui/mplayer/psignal.c index 4b93e96926..6053d40dd7 100644 --- a/Gui/mplayer/psignal.c +++ b/Gui/mplayer/psignal.c @@ -147,7 +147,7 @@ void gtkSigHandler( int s ) gtkVisibleAboutBox=1; break; case evExit: - gtkExit(); + gtk_main_quit(); break; } gtkShMem->message=0; diff --git a/Gui/mplayer/widgets.c b/Gui/mplayer/widgets.c index 2186e6a222..91089809ed 100644 --- a/Gui/mplayer/widgets.c +++ b/Gui/mplayer/widgets.c @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -80,7 +81,7 @@ static void gtkThreadProc( int argc,char * argv[] ) gtkSendMessage( evGtkIsOk ); gtk_main(); - dbprintf( 6,"[gtk] exit.\n" ); + printf( "[gtk] exit.\n" ); exit( 0 ); } @@ -93,10 +94,12 @@ void gtkInit( int argc,char* argv[], char *envp[] ) if ( ( gtkChildPID = fork() ) == 0 ) gtkThreadProc( argc,argv ); } -void gtkDone( void ) -{ +void gtkDone( void ){ + int status; + gtkSendMessage(evExit); + usleep(50000); // 50ms should be enough! + printf("gtk killed...\n"); kill( gtkChildPID,SIGKILL ); - usleep( 1000 ); } void gtkMessageBox( gchar * str ) @@ -135,5 +138,3 @@ void gtkSetDefaultToCList( GtkWidget * list,char * item ) if ( ( i=gtkFindCList( list,item ) ) > -1 ) gtk_clist_select_row( GTK_CLIST( list ),i,0 ); } -void gtkExit( void ) -{ gtk_main_quit(); } diff --git a/Gui/mplayer/widgets.h b/Gui/mplayer/widgets.h index 717272f8d8..5101a2e4df 100644 --- a/Gui/mplayer/widgets.h +++ b/Gui/mplayer/widgets.h @@ -80,6 +80,5 @@ extern int gtkFillSkinList( gchar * dir ); extern void gtkClearList( GtkWidget * list ); extern void gtkSetDefaultToCList( GtkWidget * list,char * item ); extern int gtkFindCList( GtkWidget * list,char * item ); -extern void gtkExit( void ); #endif \ No newline at end of file