From c4e935aa9711f9a07faf561f21f38042dcbc8ca7 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Thu, 27 Jun 2024 22:51:05 +0200 Subject: [PATCH] Ladybird/AppKit: Send mouse event on middle click --- Ladybird/AppKit/UI/LadybirdWebView.mm | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Ladybird/AppKit/UI/LadybirdWebView.mm b/Ladybird/AppKit/UI/LadybirdWebView.mm index 3bf2e7853c1a..9fefd66fe60c 100644 --- a/Ladybird/AppKit/UI/LadybirdWebView.mm +++ b/Ladybird/AppKit/UI/LadybirdWebView.mm @@ -1403,6 +1403,35 @@ - (void)rightMouseDragged:(NSEvent*)event m_web_view_bridge->enqueue_input_event(move(mouse_event)); } +- (void)otherMouseDown:(NSEvent*)event +{ + if (event.buttonNumber != 2) + return; + + [[self window] makeFirstResponder:self]; + + auto mouse_event = Ladybird::ns_event_to_mouse_event(Web::MouseEvent::Type::MouseDown, event, self, [self scrollView], Web::UIEvents::MouseButton::Middle); + m_web_view_bridge->enqueue_input_event(move(mouse_event)); +} + +- (void)otherMouseUp:(NSEvent*)event +{ + if (event.buttonNumber != 2) + return; + + auto mouse_event = Ladybird::ns_event_to_mouse_event(Web::MouseEvent::Type::MouseUp, event, self, [self scrollView], Web::UIEvents::MouseButton::Middle); + m_web_view_bridge->enqueue_input_event(move(mouse_event)); +} + +- (void)otherMouseDragged:(NSEvent*)event +{ + if (event.buttonNumber != 2) + return; + + auto mouse_event = Ladybird::ns_event_to_mouse_event(Web::MouseEvent::Type::MouseMove, event, self, [self scrollView], Web::UIEvents::MouseButton::Middle); + m_web_view_bridge->enqueue_input_event(move(mouse_event)); +} + - (BOOL)performKeyEquivalent:(NSEvent*)event { if ([event window] != [self window]) {