summaryrefslogtreecommitdiffstats
path: root/Gui/mplayer/widgets.c
diff options
context:
space:
mode:
Diffstat (limited to 'Gui/mplayer/widgets.c')
-rw-r--r--Gui/mplayer/widgets.c12
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;
}
}