From bbca5042ac8ef3c9ac082ecda1be9cea79a7a1cd Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Tue, 10 Jul 2018 15:22:49 +0000 Subject: [PATCH] qt511.qtbase: fix darwin build Qt 5.11.1 replaced one occurrence of NSMouseMoved with NSEventTypeMouseMoved: https://github.com/qt/qtbase/commit/da32360ffc3c7b677355c37ae54c89637c18047f. It is not available in AppKit from macOS 10.10, therefore this change restores NSMouseMoved: https://developer.apple.com/documentation/appkit/nsmousemoved Closes #43258 --- pkgs/development/libraries/qt-5/5.11/default.nix | 2 ++ .../qt-5/5.11/qtbase-darwin-nseventtype.patch | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 pkgs/development/libraries/qt-5/5.11/qtbase-darwin-nseventtype.patch diff --git a/pkgs/development/libraries/qt-5/5.11/default.nix b/pkgs/development/libraries/qt-5/5.11/default.nix index b50ff61219f..5407a79cd77 100644 --- a/pkgs/development/libraries/qt-5/5.11/default.nix +++ b/pkgs/development/libraries/qt-5/5.11/default.nix @@ -41,6 +41,8 @@ let ./qtbase.patch ./qtbase-darwin.patch ./qtbase-revert-no-macos10.10.patch + ] ++ optionals stdenv.isDarwin [ + ./qtbase-darwin-nseventtype.patch ]; qtdeclarative = [ ./qtdeclarative.patch ]; qtscript = [ ./qtscript.patch ]; diff --git a/pkgs/development/libraries/qt-5/5.11/qtbase-darwin-nseventtype.patch b/pkgs/development/libraries/qt-5/5.11/qtbase-darwin-nseventtype.patch new file mode 100644 index 00000000000..9ef6e8ef069 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.11/qtbase-darwin-nseventtype.patch @@ -0,0 +1,13 @@ +--- a/src/plugins/platforms/cocoa/qcocoawindow.mm ++++ b/src/plugins/platforms/cocoa/qcocoawindow.mm +@@ -404,8 +404,8 @@ 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 button = e.type == NSMouseMoved ? Qt::NoButton : cocoaButton2QtButton([e buttonNumber]); ++ 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); + }];