From 3c5bfa5ffa17846d1b59508155e67ab67749eb81 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 27 Aug 2018 14:48:57 +0100 Subject: [PATCH 18/18] Revert "macOS: ensure mouse events from the global monitor has the correct button set" (macOS 10.12+) This reverts commit da32360ffc3c7b677355c37ae54c89637c18047f. May break apps that use pop-up windows. --- qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm | 10 ---------- qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm | 6 +++--- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm b/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm index e5954f277c..b729c7f4c0 100644 --- a/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm +++ b/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm @@ -265,16 +265,6 @@ QRectF qt_mac_flip(const QRectF &rect, const QRectF &reference) // ------------------------------------------------------------------------- -/*! - \fn Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum) - - Returns the Qt::Button that corresponds to an NSEvent.buttonNumber. - - \note AppKit will use buttonNumber 0 to indicate both "left button" - and "no button". Only NSEvents that describes mouse press/release - events (e.g NSEventTypeOtherMouseDown) will contain a valid - button number. -*/ Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum) { if (buttonNum >= 0 && buttonNum <= 31) diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm b/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm index 9b10c8b053..5fc9853d81 100644 --- a/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/qtbasw/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -404,10 +404,10 @@ void QCocoaWindow::setVisible(bool visible) removeMonitor(); monitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask|NSRightMouseDownMask|NSOtherMouseDownMask|NSMouseMovedMask handler:^(NSEvent *e) { QPointF localPoint = QCocoaScreen::mapFromNative([NSEvent mouseLocation]); - const auto button = e.type == NSEventTypeMouseMoved ? Qt::NoButton : cocoaButton2QtButton([e buttonNumber]); - const auto eventType = e.type == NSEventTypeMouseMoved ? QEvent::MouseMove : QEvent::MouseButtonPress; + const auto eventType = e.type == NSMouseMoved ? QEvent::MouseMove : QEvent::MouseButtonPress; QWindowSystemInterface::handleMouseEvent(window(), window()->mapFromGlobal(localPoint.toPoint()), localPoint, - Qt::MouseButtons(uint(NSEvent.pressedMouseButtons & 0xFFFF)), button, eventType); + Qt::MouseButtons(uint(NSEvent.pressedMouseButtons & 0xFFFF)), + cocoaButton2QtButton(e.buttonNumber), eventType); }]; } } -- 2.17.0