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

Marvin Scholz epirat07 at gmail.com
Tue Mar 31 11:57:59 CEST 2020


Thanks a lot for the fix! LGTM!

On 31 Mar 2020, at 9:11, david.fuhrmann at gmail.com wrote:

> From: David Fuhrmann <dfuhrmann at videolan.org>
>
> 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
> ---
>  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 @@ - (void)mouseDown:(NSEvent *)event
>              !(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 @@ - (void)mouseUp:(NSEvent *)event
>              vout_display_SendEventMouseReleased(_vlc_vd, 
> MOUSE_BUTTON_LEFT);
>          }
>      }
> +
> +    [super mouseUp:event];
>  }
>
>  /* Middle mouse button down */
> @@ -670,9 +672,9 @@ - (void)otherMouseDown:(NSEvent *)event
>      @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 @@ - (void)otherMouseUp:(NSEvent *)event
>      @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 @@ - (void)mouseMoved:(NSEvent *)event
>      }
>  }
>
> +/* 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
> -- 
> 2.21.1 (Apple Git-122.3)
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list