diff options
Diffstat (limited to 'Gui/mplayer/widgets.c')
-rw-r--r-- | Gui/mplayer/widgets.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Gui/mplayer/widgets.c b/Gui/mplayer/widgets.c index 4cce8e8ea0..178fef1979 100644 --- a/Gui/mplayer/widgets.c +++ b/Gui/mplayer/widgets.c @@ -39,6 +39,7 @@ GtkWidget * ErrorPixmap; int gtkPopupMenu = 0; int gtkPopupMenuParam = 0; int gtkInited = 0; +int gtkVisible = 0; #include "gtk/sb.h" #include "gtk/pl.h" @@ -117,7 +118,8 @@ void gtkSetDefaultToCList( GtkWidget * list,char * item ) void gtkEventHandling( void ) { int i; - for( i=0;i < 25;i++ ) gtk_main_iteration_do( 0 ); + if ( gtkVisible > 0 ) + for( i=0;i < 25;i++ ) gtk_main_iteration_do( 0 ); } // --- funcs @@ -180,7 +182,7 @@ void gtkShow( int type,char * param ) } else { - gtk_widget_destroy( SkinBrowser ); + gtk_widget_destroy( SkinBrowser ); gtkVisible--; gtkMessageBox( GTK_MB_ERROR,"Skin dirs not found ... Please install skins." ); } break; @@ -218,15 +220,17 @@ void gtkShow( int type,char * param ) case evShowPopUpMenu: gtkPopupMenu=evNone; gtkPopupMenuParam=0; - if ( PopUpMenu ) gtk_widget_hide_on_delete( PopUpMenu ); + if ( PopUpMenu ) { gtk_widget_hide_on_delete( PopUpMenu ); gtkVisible--; } PopUpMenu=create_PopUpMenu(); gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 ); + gtkVisible++; break; case evHidePopUpMenu: - if ( PopUpMenu ) gtk_widget_hide_on_delete( PopUpMenu ); + if ( PopUpMenu ) { gtk_widget_hide_on_delete( PopUpMenu ); gtkVisible--; PopUpMenu=NULL; } break; case evPlayNetwork: ShowURLDialogBox(); + gtkSetLayer( URL ); break; } } |