]> git.sesse.net Git - vlc/commitdiff
Bugfix: non disparition of the Qt Popup Menu with X11 or SDL outputs.
authorJean-Philippe André <jpeg@via.ecp.fr>
Mon, 26 May 2008 22:43:20 +0000 (00:43 +0200)
committerRémi Duraffort <ivoire@videolan.org>
Mon, 26 May 2008 23:28:22 +0000 (01:28 +0200)
Actually, we just need to do like Direct3D: catch left-click.

modules/gui/qt4/main_interface.cpp
modules/video_output/sdl.c
modules/video_output/x11/xcommon.c

index 0917be034b4ba09b690be62e0ce03ecef4a048c6..495b6762ba104749527e598ef503d32387912f37 100644 (file)
@@ -1208,7 +1208,6 @@ static int PopupMenuCB( vlc_object_t *p_this, const char *psz_variable,
                         vlc_value_t old_val, vlc_value_t new_val, void *param )
 {
     intf_thread_t *p_intf = (intf_thread_t *)param;
-    msg_Dbg( p_this, "Menu Requested" ); // DEBUG to track the non disparition of the menu...
 
     if( p_intf->pf_show_dialog )
     {
@@ -1226,7 +1225,6 @@ static int IntfShowCB( vlc_object_t *p_this, const char *psz_variable,
                        vlc_value_t old_val, vlc_value_t new_val, void *param )
 {
     intf_thread_t *p_intf = (intf_thread_t *)param;
-    msg_Dbg( p_this, "Intf Show Requested" ); // DEBUG to track the non disparition of the menu...
     p_intf->p_sys->p_mi->requestLayoutUpdate();
 
     return VLC_SUCCESS;
index 86a0da4e7bb85b596872c72c8bebf62b7bbed690..27f2ea2c038d1d68dcaddb677fbbfb930ecb4b5c 100644 (file)
@@ -429,12 +429,27 @@ static int Manage( vout_thread_t *p_vout )
             switch( event.button.button )
             {
             case SDL_BUTTON_LEFT:
-                var_Get( p_vout, "mouse-button-down", &val );
-                val.i_int &= ~1;
-                var_Set( p_vout, "mouse-button-down", val );
+                {
+                    playlist_t *p_playlist;
+
+                    var_Get( p_vout, "mouse-button-down", &val );
+                    val.i_int &= ~1;
+                    var_Set( p_vout, "mouse-button-down", val );
+
+                    val.b_bool = true;
+                    var_Set( p_vout, "mouse-clicked", val );
+
+                    p_playlist = vlc_object_find( p_vout, VLC_OBJECT_PLAYLIST,
+                                                FIND_ANYWHERE );
 
-                val.b_bool = true;
-                var_Set( p_vout, "mouse-clicked", val );
+                    if( p_playlist != NULL )
+                    {
+                        vlc_value_t val;
+                        val.b_bool = false;
+                        var_Set( p_playlist, "intf-popupmenu", val );
+                        vlc_object_release( p_playlist );
+                    }
+                }
                 break;
 
             case SDL_BUTTON_MIDDLE:
index be72fc9bb0620f86f8939267d09d07a9aa1d7669..d6d625ba8c572d55a449a3a483e8f94349718d08 100644 (file)
@@ -1290,12 +1290,26 @@ static int ManageVideo( vout_thread_t *p_vout )
             switch( ((XButtonEvent *)&xevent)->button )
             {
                 case Button1:
-                    var_Get( p_vout, "mouse-button-down", &val );
-                    val.i_int &= ~1;
-                    var_Set( p_vout, "mouse-button-down", val );
+                    {
+                        playlist_t *p_playlist;
 
-                    val.b_bool = true;
-                    var_Set( p_vout, "mouse-clicked", val );
+                        var_Get( p_vout, "mouse-button-down", &val );
+                        val.i_int &= ~1;
+                        var_Set( p_vout, "mouse-button-down", val );
+
+                        val.b_bool = true;
+                        var_Set( p_vout, "mouse-clicked", val );
+
+                        p_playlist = vlc_object_find( p_vout,
+                                                      VLC_OBJECT_PLAYLIST,
+                                                      FIND_ANYWHERE );
+                        if( p_playlist != NULL )
+                        {
+                            vlc_value_t val; val.b_bool = false;
+                            var_Set( p_playlist, "intf-popupmenu", val );
+                            vlc_object_release( p_playlist );
+                        }
+                    }
                     break;
 
                 case Button2: