[vlc-commits] [Git][videolan/vlc][3.0.x] qt: interface_widgets: honor --no-mouse-events
    Hugo Beauzée-Luyssen (@chouquette) 
    gitlab at videolan.org
       
    Tue Nov 30 14:19:42 UTC 2021
    
    
  
Hugo Beauzée-Luyssen pushed to branch 3.0.x at VideoLAN / VLC
Commits:
d5e53764 by Alexandre Janniaux at 2021-11-29T11:24:54+01:00
qt: interface_widgets: honor --no-mouse-events
With --no-mouse-events, the mouse events were correctly disabled on
every window platform but not in the Qt provider.
- - - - -
2 changed files:
- modules/gui/qt/components/interface_widgets.cpp
- modules/gui/qt/components/interface_widgets.hpp
Changes:
=====================================
modules/gui/qt/components/interface_widgets.cpp
=====================================
@@ -186,6 +186,8 @@ bool VideoWidget::request( struct vout_window_t *p_wnd )
         default:
             vlc_assert_unreachable();
     }
+
+    enable_mouse_events = var_InheritBool(p_window, "mouse-events");
     return true;
 }
 
@@ -320,31 +322,50 @@ int VideoWidget::qtMouseButton2VLC( Qt::MouseButton qtButton )
 
 void VideoWidget::mouseReleaseEvent( QMouseEvent *event )
 {
+    if ( !p_window || !enable_mouse_events )
+    {
+        event->ignore();
+        return;
+    }
+
     int vlc_button = qtMouseButton2VLC( event->button() );
     if( vlc_button >= 0 )
     {
         vout_window_ReportMouseReleased( p_window, vlc_button );
         event->accept();
+        return;
     }
-    else
-        event->ignore();
+
+    event->ignore();
 }
 
 void VideoWidget::mousePressEvent( QMouseEvent* event )
 {
+    if ( !p_window || enable_mouse_events )
+    {
+        event->ignore();
+        return;
+    }
+
     int vlc_button = qtMouseButton2VLC( event->button() );
     if( vlc_button >= 0 )
     {
         vout_window_ReportMousePressed( p_window, vlc_button );
         event->accept();
+        return;
     }
-    else
-        event->ignore();
+
+    event->ignore();
 }
 
 void VideoWidget::mouseMoveEvent( QMouseEvent *event )
 {
-    if( p_window != NULL )
+    if ( !p_window || !enable_mouse_events )
+    {
+        event->ignore();
+        return;
+    }
+
     {
         QPointF current_pos = event->localPos();
 
@@ -355,21 +376,29 @@ void VideoWidget::mouseMoveEvent( QMouseEvent *event )
 #endif
         vout_window_ReportMouseMoved( p_window, current_pos.x(), current_pos.y() );
         event->accept();
+        return;
     }
-    else
-        event->ignore();
+
+    event->ignore();
 }
 
 void VideoWidget::mouseDoubleClickEvent( QMouseEvent *event )
 {
+    if ( !p_window || !enable_mouse_events )
+    {
+        event->ignore();
+        return;
+    }
+
     int vlc_button = qtMouseButton2VLC( event->button() );
     if( vlc_button >= 0 )
     {
         vout_window_ReportMouseDoubleClick( p_window, vlc_button );
         event->accept();
+        return;
     }
-    else
-        event->ignore();
+
+    event->ignore();
 }
 
 
=====================================
modules/gui/qt/components/interface_widgets.hpp
=====================================
@@ -85,6 +85,8 @@ private:
     QWidget *stable;
     QLayout *layout;
 
+    bool enable_mouse_events;
+
     void reportSize();
 
 signals:
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/d5e53764ba89d36ca5c300e0cc0f5261b0abe8ac
-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/d5e53764ba89d36ca5c300e0cc0f5261b0abe8ac
You're receiving this email because of your account on code.videolan.org.
    
    
More information about the vlc-commits
mailing list