diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-10-27 09:21:36 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-10-27 10:02:15 +0200 |
commit | 6c6363af51940da4bc42570c3f749d961b2969f6 (patch) | |
tree | ffc988266af98545f640d42160a464b1e6e504df | |
parent | 33b3fe378486eddddf63a320ebcc5ebb3db0e0d5 (diff) |
Mac touchpad support added
Task-number: QTRD-2286
Change-Id: Ibe211caedab231e908af900af65d4075b926a875
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
-rw-r--r-- | src/datavisualization/datavisualization.pro | 3 | ||||
-rw-r--r-- | src/datavisualization/engine/qabstract3dgraph.cpp | 12 | ||||
-rw-r--r-- | src/datavisualizationqml2/abstractdeclarative.cpp | 15 | ||||
-rw-r--r-- | src/datavisualizationqml2/datavisualizationqml2.pro | 1 |
4 files changed, 30 insertions, 1 deletions
diff --git a/src/datavisualization/datavisualization.pro b/src/datavisualization/datavisualization.pro index f0e56073..645a1733 100644 --- a/src/datavisualization/datavisualization.pro +++ b/src/datavisualization/datavisualization.pro @@ -7,7 +7,8 @@ mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) { } message($$QT_CONFIG) -QT = core gui +QT += core gui +osx: QT += gui-private DEFINES += QT_DATAVISUALIZATION_LIBRARY # Fix exports in static builds for applications linking datavisualization module diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp index 47802c89..96c82cb6 100644 --- a/src/datavisualization/engine/qabstract3dgraph.cpp +++ b/src/datavisualization/engine/qabstract3dgraph.cpp @@ -29,6 +29,9 @@ #include <QtGui/QPainter> #include <QtGui/QOpenGLFramebufferObject> #include <QtGui/QOffscreenSurface> +#if defined(Q_OS_OSX) +#include <qpa/qplatformnativeinterface.h> +#endif QT_BEGIN_NAMESPACE_DATAVISUALIZATION @@ -208,6 +211,15 @@ QAbstract3DGraph::QAbstract3DGraph(QAbstract3DGraphPrivate *d, const QSurfaceFor #endif d_ptr->renderLater(); + +#if defined(Q_OS_OSX) + // Enable touch events for Mac touchpads + typedef void * (*EnableTouch)(QWindow*, bool); + EnableTouch enableTouch = + (EnableTouch)QGuiApplication::platformNativeInterface()->nativeResourceFunctionForIntegration("registertouchwindow"); + if (enableTouch) + enableTouch(this, true); +#endif } /*! diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp index 7e8de95c..b668c08f 100644 --- a/src/datavisualizationqml2/abstractdeclarative.cpp +++ b/src/datavisualizationqml2/abstractdeclarative.cpp @@ -24,6 +24,9 @@ #if defined(Q_OS_IOS) #include <QtCore/QTimer> #endif +#if defined(Q_OS_OSX) +#include <qpa/qplatformnativeinterface.h> +#endif QT_BEGIN_NAMESPACE_DATAVISUALIZATION @@ -443,6 +446,18 @@ void AbstractDeclarative::handleWindowChanged(QQuickWindow *window) if (!window) return; +#if defined(Q_OS_OSX) + bool previousVisibility = window->isVisible(); + // Enable touch events for Mac touchpads + window->setVisible(true); + typedef void * (*EnableTouch)(QWindow*, bool); + EnableTouch enableTouch = + (EnableTouch)QGuiApplication::platformNativeInterface()->nativeResourceFunctionForIntegration("registertouchwindow"); + if (enableTouch) + enableTouch(window, true); + window->setVisible(previousVisibility); +#endif + connect(window, &QObject::destroyed, this, &AbstractDeclarative::windowDestroyed); int oldWindowSamples = m_windowSamples; diff --git a/src/datavisualizationqml2/datavisualizationqml2.pro b/src/datavisualizationqml2/datavisualizationqml2.pro index 7c65d69e..87376e70 100644 --- a/src/datavisualizationqml2/datavisualizationqml2.pro +++ b/src/datavisualizationqml2/datavisualizationqml2.pro @@ -1,5 +1,6 @@ TARGET = datavisualizationqml2 QT += qml quick datavisualization +osx: QT += gui-private TARGETPATH = QtDataVisualization IMPORT_VERSION = $$MODULE_VERSION |