1
mirror of https://github.com/mpv-player/mpv synced 2024-10-18 10:25:02 +02:00

fix middle menu hideing bug

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2981 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
pontscho 2001-11-18 19:22:55 +00:00
parent c7bdd84243
commit 3e771db3e4
5 changed files with 20 additions and 5 deletions

View File

@ -10,6 +10,7 @@ void ActivateMenuItem( int Item )
{ {
// fprintf( stderr,"[menu] item: %d\n",Item ); // fprintf( stderr,"[menu] item: %d\n",Item );
gtkShMem->popupmenu=Item; gtkShMem->popupmenu=Item;
gtkShMem->visiblepopupmenu=0;
gtkSendMessage( evShowPopUpMenu ); gtkSendMessage( evShowPopUpMenu );
} }
@ -52,6 +53,7 @@ GtkWidget * AddSeparator( GtkWidget * Menu )
} }
GtkWidget * DVDSubMenu; GtkWidget * DVDSubMenu;
GtkWidget * DVDTitleMenu;
GtkWidget * DVDAudioLanguageMenu; GtkWidget * DVDAudioLanguageMenu;
GtkWidget * DVDSubtitleLanguageMenu; GtkWidget * DVDSubtitleLanguageMenu;
@ -68,7 +70,7 @@ GtkWidget * create_PopUpMenu( void )
SubMenu=AddSubMenu( Menu,"Open ..." ); SubMenu=AddSubMenu( Menu,"Open ..." );
AddMenuItem( SubMenu,"Play file ..."" ", evLoadPlay ); AddMenuItem( SubMenu,"Play file ..."" ", evLoadPlay );
AddMenuItem( SubMenu,"Play VCD ...", evNone ); AddMenuItem( SubMenu,"Play VCD ...", evNone );
AddMenuItem( SubMenu,"Play DVD ...", evNone ); AddMenuItem( SubMenu,"Play DVD ...", evPlayDVD );
AddMenuItem( SubMenu,"Play URL ...", evNone ); AddMenuItem( SubMenu,"Play URL ...", evNone );
AddMenuItem( SubMenu,"Load subtitle ... ", evLoadSubtitle ); AddMenuItem( SubMenu,"Load subtitle ... ", evLoadSubtitle );
SubMenu=AddSubMenu( Menu,"Playing" ); SubMenu=AddSubMenu( Menu,"Playing" );
@ -89,9 +91,10 @@ GtkWidget * create_PopUpMenu( void )
AddMenuItem( SubMenu,"Double size", evDoubleSize ); AddMenuItem( SubMenu,"Double size", evDoubleSize );
AddMenuItem( SubMenu,"Fullscreen", evFullScreen ); AddMenuItem( SubMenu,"Fullscreen", evFullScreen );
DVDSubMenu=AddSubMenu( Menu,"DVD" ); DVDSubMenu=AddSubMenu( Menu,"DVD" );
AddMenuItem( DVDSubMenu,"Play disc ..."" ", evNone ); AddMenuItem( DVDSubMenu,"Play disc ..."" ", evPlayDVD );
AddMenuItem( DVDSubMenu,"Show DVD Menu", evNone ); AddMenuItem( DVDSubMenu,"Show DVD Menu", evNone );
AddSeparator( DVDSubMenu ); AddSeparator( DVDSubMenu );
DVDTitleMenu=AddSubMenu( DVDSubMenu,"Titles" );
DVDAudioLanguageMenu=AddSubMenu( DVDSubMenu,"Audio language" ); DVDAudioLanguageMenu=AddSubMenu( DVDSubMenu,"Audio language" );
DVDSubtitleLanguageMenu=AddSubMenu( DVDSubMenu,"Subtitle language" ); DVDSubtitleLanguageMenu=AddSubMenu( DVDSubMenu,"Subtitle language" );
AddSeparator( Menu ); AddSeparator( Menu );

View File

@ -128,7 +128,14 @@ void gtkSigHandler( int s )
break; break;
case evShowPopUpMenu: case evShowPopUpMenu:
gtkShMem->popupmenu=evNone; gtkShMem->popupmenu=evNone;
if ( gtkShMem->visiblepopupmenu ) gtk_widget_hide_on_delete( PopUpMenu );
PopUpMenu=create_PopUpMenu();
gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 ); gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 );
gtkShMem->visiblepopupmenu=1;
break;
case evHidePopUpMenu:
if ( gtkShMem->visiblepopupmenu ) gtk_widget_hide_on_delete( PopUpMenu );
gtkShMem->visiblepopupmenu=0;
break; break;
} }
gtkShMem->message=0; gtkShMem->message=0;

View File

@ -32,13 +32,15 @@ void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
mplMouseTimer=mplMouseTimerConst; mplMouseTimer=mplMouseTimerConst;
wsVisibleMouse( &appMPlayer.subWindow,wsShowMouseCursor ); wsVisibleMouse( &appMPlayer.subWindow,wsShowMouseCursor );
switch( Button ) switch( Button )
{ {
case wsPMMouseButton: case wsPMMouseButton:
gtkSendMessage( evShowPopUpMenu ); gtkSendMessage( evShowPopUpMenu );
break; break;
case wsPRMouseButton: case wsPRMouseButton:
if ( gtkShMem->visiblepopupmenu ) gtkSendMessage( evHidePopUpMenu );
mplShowMenu( RX,RY ); mplShowMenu( RX,RY );
msButton=wsPRMouseButton; msButton=wsPRMouseButton;
break; break;
@ -48,6 +50,7 @@ void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
break; break;
// --- // ---
case wsPLMouseButton: case wsPLMouseButton:
if ( gtkShMem->visiblepopupmenu ) gtkSendMessage( evHidePopUpMenu );
sx=X; sy=Y; sx=X; sy=Y;
msButton=wsPLMouseButton; msButton=wsPLMouseButton;
mplSubMoved=0; mplSubMoved=0;

View File

@ -59,7 +59,7 @@ void widgetsCreate( void )
FileSelect=create_FileSelect(); FileSelect=create_FileSelect();
MessageBox=create_MessageBox(0); MessageBox=create_MessageBox(0);
Options=create_Options(); Options=create_Options();
PopUpMenu=create_PopUpMenu(); // PopUpMenu=create_PopUpMenu();
} }
// --- forked function // --- forked function

View File

@ -52,7 +52,9 @@ typedef struct
gtkSkinStruct sb; gtkSkinStruct sb;
gtkVisibleStruct vs; gtkVisibleStruct vs;
gtkOptionsStruct op; gtkOptionsStruct op;
int popupmenu; int popupmenu;
int visiblepopupmenu;
} gtkCommStruct; } gtkCommStruct;
extern gtkCommStruct * gtkShMem; extern gtkCommStruct * gtkShMem;