[vlc-commits] caopengllayer: Forward mouse events to other views as well

David Fuhrmann git at videolan.org
Tue Mar 31 15:33:01 CEST 2020


vlc/vlc-3.0 | branch: master | David Fuhrmann <dfuhrmann at videolan.org> | Tue Mar 31 09:11:08 2020 +0200| [4d98f418ee4e3ec40fec55e74b51f747356eda74] | committer: Marvin Scholz

caopengllayer: Forward mouse events to other views as well

Other views might need the mouse events as well. Do the analog
logic as in the old macosx vout module.
Fixes steering of fullscreen panel.

fixes #24560

Signed-off-by: Marvin Scholz <epirat07 at gmail.com>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=4d98f418ee4e3ec40fec55e74b51f747356eda74
---

 modules/video_output/caopengllayer.m | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/modules/video_output/caopengllayer.m b/modules/video_output/caopengllayer.m
index 739a3dcb10..bf16358591 100644
--- a/modules/video_output/caopengllayer.m
+++ b/modules/video_output/caopengllayer.m
@@ -643,10 +643,10 @@ shouldInheritContentsScale:(CGFloat)newScale
             !(event.modifierFlags & NSControlKeyMask) &&
             event.clickCount == 1) {
             vout_display_SendEventMousePressed(_vlc_vd, MOUSE_BUTTON_LEFT);
-        } else {
-            [super mouseDown:event];
         }
     }
+
+    [super mouseDown:event];
 }
 
 /* Left mouse button up */
@@ -662,6 +662,8 @@ shouldInheritContentsScale:(CGFloat)newScale
             vout_display_SendEventMouseReleased(_vlc_vd, MOUSE_BUTTON_LEFT);
         }
     }
+
+    [super mouseUp:event];
 }
 
 /* Middle mouse button down */
@@ -670,9 +672,9 @@ shouldInheritContentsScale:(CGFloat)newScale
     @synchronized(self) {
         if (_vlc_vd)
             vout_display_SendEventMousePressed(_vlc_vd, MOUSE_BUTTON_CENTER);
-        else
-            [super otherMouseDown:event];
     }
+
+    [super otherMouseDown:event];
 }
 
 /* Middle mouse button up */
@@ -681,17 +683,15 @@ shouldInheritContentsScale:(CGFloat)newScale
     @synchronized(self) {
         if (_vlc_vd)
             vout_display_SendEventMouseReleased(_vlc_vd, MOUSE_BUTTON_CENTER);
-        else
-            [super otherMouseUp:event];
     }
+
+    [super otherMouseUp:event];
 }
 
-/* Mouse moved */
-- (void)mouseMoved:(NSEvent *)event
+- (void)mouseMovedInternal:(NSEvent *)event
 {
     @synchronized(self) {
         if (!_vlc_vd) {
-            [super mouseMoved:event];
             return;
         }
 
@@ -709,22 +709,32 @@ shouldInheritContentsScale:(CGFloat)newScale
     }
 }
 
+/* Mouse moved */
+- (void)mouseMoved:(NSEvent *)event
+{
+    [self mouseMovedInternal:event];
+    [super mouseMoved:event];
+}
+
 /* Mouse moved while clicked */
 - (void)mouseDragged:(NSEvent *)event
 {
-    [self mouseMoved:event];
+    [self mouseMovedInternal:event];
+    [super mouseDragged:event];
 }
 
 /* Mouse moved while center-clicked */
 - (void)otherMouseDragged:(NSEvent *)event
 {
-    [self mouseMoved:event];
+    [self mouseMovedInternal:event];
+    [super otherMouseDragged:event];
 }
 
 /* Mouse moved while right-clicked */
 - (void)rightMouseDragged:(NSEvent *)event
 {
-    [self mouseMoved:event];
+    [self mouseMovedInternal:event];
+    [super rightMouseDragged:event];
 }
 
 @end



More information about the vlc-commits mailing list