diff options
author | Robert Griebl <robert.griebl@pelagicore.com> | 2018-05-17 13:27:55 +0200 |
---|---|---|
committer | Robert Griebl <robert.griebl@pelagicore.com> | 2018-06-09 21:53:48 +0000 |
commit | db7b958fb2d82a85ef45eba852cf411ebde852bf (patch) | |
tree | 92e21231883b5451385e9747eba18bcd99f72c94 | |
parent | 590d2e313c5a10dc9c7d61a654ada451e5df82aa (diff) |
Add support for building QtWayland on macOS
Change-Id: I98aadd5019e913bf0adcf0122b7b209981926278
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
-rw-r--r-- | qtwayland.pro | 2 | ||||
-rw-r--r-- | src/client/qwaylanddataoffer.cpp | 2 | ||||
-rw-r--r-- | src/client/qwaylandintegration.cpp | 11 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandquickitem.cpp | 8 |
4 files changed, 18 insertions, 5 deletions
diff --git a/qtwayland.pro b/qtwayland.pro index 04eca333b..fdcc3e24f 100644 --- a/qtwayland.pro +++ b/qtwayland.pro @@ -1,3 +1,3 @@ -requires(linux:!android) +requires(linux:!android|macos) requires(qtHaveModule(gui)) load(qt_parts) diff --git a/src/client/qwaylanddataoffer.cpp b/src/client/qwaylanddataoffer.cpp index 35085a7f0..0c732c020 100644 --- a/src/client/qwaylanddataoffer.cpp +++ b/src/client/qwaylanddataoffer.cpp @@ -135,7 +135,7 @@ QVariant QWaylandMimeData::retrieveData_sys(const QString &mimeType, QVariant::T } int pipefd[2]; - if (::pipe2(pipefd, O_CLOEXEC|O_NONBLOCK) == -1) { + if (qt_safe_pipe(pipefd, O_NONBLOCK) == -1) { qWarning("QWaylandMimeData: pipe2() failed"); return QVariant(); } diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp index b804988b2..6b2faf0c4 100644 --- a/src/client/qwaylandintegration.cpp +++ b/src/client/qwaylandintegration.cpp @@ -52,7 +52,12 @@ #include "qwaylandwindowmanagerintegration_p.h" #include "qwaylandscreen_p.h" -#include <QtFontDatabaseSupport/private/qgenericunixfontdatabase_p.h> +#if defined(Q_OS_MACOS) +# include <QtFontDatabaseSupport/private/qcoretextfontdatabase_p.h> +# include <QtFontDatabaseSupport/private/qfontengine_coretext_p.h> +#else +# include <QtFontDatabaseSupport/private/qgenericunixfontdatabase_p.h> +#endif #include <QtEventDispatcherSupport/private/qgenericunixeventdispatcher_p.h> #include <QtThemeSupport/private/qgenericunixthemes_p.h> @@ -121,7 +126,11 @@ public: }; QWaylandIntegration::QWaylandIntegration() +#if defined(Q_OS_MACOS) + : mFontDb(new QCoreTextFontDatabaseEngineFactory<QCoreTextFontEngine>) +#else : mFontDb(new QGenericUnixFontDatabase()) +#endif , mNativeInterface(new QWaylandNativeInterface(this)) #if QT_CONFIG(accessibility) , mAccessibility(new QPlatformAccessibility()) diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp index d4cc94e4b..09e8f7621 100644 --- a/src/compositor/compositor_api/qwaylandquickitem.cpp +++ b/src/compositor/compositor_api/qwaylandquickitem.cpp @@ -1338,8 +1338,12 @@ void QWaylandQuickItem::handleDragStarted(QWaylandDrag *drag) qreal QWaylandQuickItemPrivate::scaleFactor() const { - return (view->output() ? view->output()->scaleFactor() : 1) - / (window ? window->devicePixelRatio() : 1); + qreal f = view->output() ? view->output()->scaleFactor() : 1; +#if !defined(Q_OS_MACOS) + if (window) + f /= window->devicePixelRatio(); +#endif + return f; } QT_END_NAMESPACE |