diff options
-rw-r--r-- | src/client/qwaylandabstractdecoration_p.h | 3 | ||||
-rw-r--r-- | src/client/qwaylandinputdevice.cpp | 12 | ||||
-rw-r--r-- | src/client/qwaylandinputdevice_p.h | 2 | ||||
-rw-r--r-- | src/client/qwaylandtouch.cpp | 4 | ||||
-rw-r--r-- | src/client/qwaylandwindow.cpp | 2 | ||||
-rw-r--r-- | src/client/qwaylandwindow_p.h | 3 | ||||
-rw-r--r-- | src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.h | 2 | ||||
-rw-r--r-- | src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.h | 2 | ||||
-rw-r--r-- | src/plugins/decorations/bradient/main.cpp | 6 | ||||
-rw-r--r-- | tests/auto/client/seatv5/tst_seatv5.cpp | 43 |
10 files changed, 43 insertions, 36 deletions
diff --git a/src/client/qwaylandabstractdecoration_p.h b/src/client/qwaylandabstractdecoration_p.h index 61cbde77..e9fbf846 100644 --- a/src/client/qwaylandabstractdecoration_p.h +++ b/src/client/qwaylandabstractdecoration_p.h @@ -59,6 +59,7 @@ #include <QtGui/QColor> #include <QtGui/QStaticText> #include <QtGui/QImage> +#include <QtGui/QEventPoint> #include <QtWaylandClient/qtwaylandclientglobal.h> #include <QtCore/QDebug> @@ -103,7 +104,7 @@ public: const QImage &contentImage(); virtual bool handleMouse(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global,Qt::MouseButtons b,Qt::KeyboardModifiers mods) = 0; - virtual bool handleTouch(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, Qt::TouchPointState state, Qt::KeyboardModifiers mods) = 0; + virtual bool handleTouch(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, QEventPoint::State state, Qt::KeyboardModifiers mods) = 0; protected: virtual void paint(QPaintDevice *device) = 0; diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp index 6fe89cfc..b71ffc5a 100644 --- a/src/client/qwaylandinputdevice.cpp +++ b/src/client/qwaylandinputdevice.cpp @@ -1404,14 +1404,14 @@ void QWaylandInputDevice::Touch::touch_down(uint32_t serial, mFocus = window; mParent->mQDisplay->setLastInputDevice(mParent, serial, mFocus); QPointF position(wl_fixed_to_double(x), wl_fixed_to_double(y)); - mParent->handleTouchPoint(id, Qt::TouchPointPressed, position); + mParent->handleTouchPoint(id, QEventPoint::Pressed, position); } void QWaylandInputDevice::Touch::touch_up(uint32_t serial, uint32_t time, int32_t id) { Q_UNUSED(serial); Q_UNUSED(time); - mParent->handleTouchPoint(id, Qt::TouchPointReleased); + mParent->handleTouchPoint(id, QEventPoint::Released); if (allTouchPointsReleased()) { mFocus = nullptr; @@ -1431,7 +1431,7 @@ void QWaylandInputDevice::Touch::touch_motion(uint32_t time, int32_t id, wl_fixe { Q_UNUSED(time); QPointF position(wl_fixed_to_double(x), wl_fixed_to_double(y)); - mParent->handleTouchPoint(id, Qt::TouchPointMoved, position); + mParent->handleTouchPoint(id, QEventPoint::Updated, position); } void QWaylandInputDevice::Touch::touch_cancel() @@ -1445,7 +1445,7 @@ void QWaylandInputDevice::Touch::touch_cancel() QWindowSystemInterface::handleTouchCancelEvent(nullptr, mParent->mTouchDevice); } -void QWaylandInputDevice::handleTouchPoint(int id, Qt::TouchPointState state, const QPointF &surfacePosition) +void QWaylandInputDevice::handleTouchPoint(int id, QEventPoint::State state, const QPointF &surfacePosition) { auto end = mTouch->mPendingTouchPoints.end(); auto it = std::find_if(mTouch->mPendingTouchPoints.begin(), end, [id](const QWindowSystemInterface::TouchPoint &tp){ return tp.id == id; }); @@ -1464,7 +1464,7 @@ void QWaylandInputDevice::handleTouchPoint(int id, Qt::TouchPointState state, co QWindowSystemInterface::TouchPoint &tp = *it; // Only moved and pressed needs to update/set position - if (state == Qt::TouchPointMoved || state == Qt::TouchPointPressed) { + if (state == QEventPoint::Updated || state == QEventPoint::Pressed) { // We need a global (screen) position. QWaylandWindow *win = mTouch->mFocus; @@ -1525,7 +1525,7 @@ void QWaylandInputDevice::Touch::touch_frame() QMargins margins = window->frameMargins(); QPoint p = tp.area.center().toPoint(); QPointF localPos(window->mapFromGlobal(QPoint(p.x() + margins.left(), p.y() + margins.top()))); - if (mFocus->touchDragDecoration(mParent, localPos, tp.area.center(), Qt::TouchPointState(tp.state), mParent->modifiers())) + if (mFocus->touchDragDecoration(mParent, localPos, tp.area.center(), tp.state, mParent->modifiers())) return; } diff --git a/src/client/qwaylandinputdevice_p.h b/src/client/qwaylandinputdevice_p.h index 0d408d36..3e648431 100644 --- a/src/client/qwaylandinputdevice_p.h +++ b/src/client/qwaylandinputdevice_p.h @@ -207,7 +207,7 @@ protected: uint32_t mSerial = 0; void seat_capabilities(uint32_t caps) override; - void handleTouchPoint(int id, Qt::TouchPointState state, const QPointF &surfacePosition = QPoint()); + void handleTouchPoint(int id, QEventPoint::State state, const QPointF &surfacePosition = QPoint()); QPointingDevice *mTouchDevice = nullptr; QPointingDevice *mTouchPadDevice = nullptr; diff --git a/src/client/qwaylandtouch.cpp b/src/client/qwaylandtouch.cpp index 6c723903..dea27193 100644 --- a/src/client/qwaylandtouch.cpp +++ b/src/client/qwaylandtouch.cpp @@ -172,7 +172,7 @@ void QWaylandTouchExtension::sendTouchEvent() states |= mTouchPoints.at(i).state; if (mFlags & QT_TOUCH_EXTENSION_FLAGS_MOUSE_FROM_TOUCH) { - const bool firstPress = states == Qt::TouchPointPressed; + const bool firstPress = states == QEventPoint::Pressed; if (firstPress) mMouseSourceId = mTouchPoints.first().id; for (int i = 0; i < mTouchPoints.count(); ++i) { @@ -199,7 +199,7 @@ void QWaylandTouchExtension::sendTouchEvent() mPrevTouchPoints = mTouchPoints; mTouchPoints.clear(); - if (states == Qt::TouchPointReleased) + if (states == QEventPoint::Released) mPrevTouchPoints.clear(); } diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index 5a5d18a9..557d58c9 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -1105,7 +1105,7 @@ void QWaylandWindow::handlePinchGesture(QWaylandInputDevice *inputDevice, #endif // #ifndef QT_NO_GESTURES -bool QWaylandWindow::touchDragDecoration(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, Qt::TouchPointState state, Qt::KeyboardModifiers mods) +bool QWaylandWindow::touchDragDecoration(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, QEventPoint::State state, Qt::KeyboardModifiers mods) { if (!mWindowDecoration) return false; diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h index 09411792..a041dc40 100644 --- a/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h @@ -56,6 +56,7 @@ #include <QtCore/QReadWriteLock> #include <QtGui/QIcon> +#include <QtGui/QEventPoint> #include <QtCore/QVariant> #include <QtCore/QLoggingCategory> #include <QtCore/QElapsedTimer> @@ -187,7 +188,7 @@ public: #endif bool touchDragDecoration(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, - Qt::TouchPointState state, Qt::KeyboardModifiers mods); + QEventPoint::State state, Qt::KeyboardModifiers mods); bool createDecoration(); diff --git a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.h b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.h index 5fe21d7b..6327ffd4 100644 --- a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.h +++ b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.h @@ -54,6 +54,8 @@ #include <QWaitCondition> #include <X11/Xlib.h> +// conflict with QInputDevice::Capability::None +#undef None #include <EGL/egl.h> // avoid clashes with Qt::CursorShape diff --git a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.h b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.h index 80969081..b86de4e9 100644 --- a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.h +++ b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.h @@ -50,6 +50,8 @@ #include <QtGui/QWindow> #include <X11/Xlib.h> +// conflict with QInputDevice::Capability::None +#undef None // avoid clashes with Qt::CursorShape #ifdef CursorShape diff --git a/src/plugins/decorations/bradient/main.cpp b/src/plugins/decorations/bradient/main.cpp index b273a58f..5aa9ad4a 100644 --- a/src/plugins/decorations/bradient/main.cpp +++ b/src/plugins/decorations/bradient/main.cpp @@ -76,7 +76,7 @@ protected: QMargins margins(MarginsType marginsType = Full) const override; void paint(QPaintDevice *device) override; bool handleMouse(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global,Qt::MouseButtons b,Qt::KeyboardModifiers mods) override; - bool handleTouch(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, Qt::TouchPointState state, Qt::KeyboardModifiers mods) override; + bool handleTouch(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, QEventPoint::State state, Qt::KeyboardModifiers mods) override; private: void processMouseTop(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods); void processMouseBottom(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods); @@ -293,12 +293,12 @@ bool QWaylandBradientDecoration::handleMouse(QWaylandInputDevice *inputDevice, c return true; } -bool QWaylandBradientDecoration::handleTouch(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, Qt::TouchPointState state, Qt::KeyboardModifiers mods) +bool QWaylandBradientDecoration::handleTouch(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, QEventPoint::State state, Qt::KeyboardModifiers mods) { Q_UNUSED(inputDevice); Q_UNUSED(global); Q_UNUSED(mods); - bool handled = state == Qt::TouchPointPressed; + bool handled = state == QEventPoint::Pressed; if (handled) { if (closeButtonRect().contains(local)) QWindowSystemInterface::handleCloseEvent(window()); diff --git a/tests/auto/client/seatv5/tst_seatv5.cpp b/tests/auto/client/seatv5/tst_seatv5.cpp index 69c52ed5..7e59dbdd 100644 --- a/tests/auto/client/seatv5/tst_seatv5.cpp +++ b/tests/auto/client/seatv5/tst_seatv5.cpp @@ -29,6 +29,7 @@ #include "mockcompositor.h" #include <QtOpenGL/QOpenGLWindow> #include <QtGui/QRasterWindow> +#include <QtGui/QEventPoint> using namespace MockCompositor; @@ -449,14 +450,14 @@ void tst_seatv5::singleTap() { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchBegin); - QCOMPARE(e.touchPointStates, Qt::TouchPointState::TouchPointPressed); + QCOMPARE(e.touchPointStates, QEventPoint::State::Pressed); QCOMPARE(e.touchPoints.length(), 1); QCOMPARE(e.touchPoints.first().position(), QPointF(32-window.frameMargins().left(), 32-window.frameMargins().top())); } { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchEnd); - QCOMPARE(e.touchPointStates, Qt::TouchPointState::TouchPointReleased); + QCOMPARE(e.touchPointStates, QEventPoint::State::Released); QCOMPARE(e.touchPoints.length(), 1); QCOMPARE(e.touchPoints.first().position(), QPointF(32-window.frameMargins().left(), 32-window.frameMargins().top())); } @@ -480,14 +481,14 @@ void tst_seatv5::singleTapFloat() { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchBegin); - QCOMPARE(e.touchPointStates, Qt::TouchPointState::TouchPointPressed); + QCOMPARE(e.touchPointStates, QEventPoint::State::Pressed); QCOMPARE(e.touchPoints.length(), 1); QCOMPARE(e.touchPoints.first().position(), QPointF(32.75-window.frameMargins().left(), 32.25-window.frameMargins().top())); } { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchEnd); - QCOMPARE(e.touchPointStates, Qt::TouchPointState::TouchPointReleased); + QCOMPARE(e.touchPointStates, QEventPoint::State::Released); QCOMPARE(e.touchPoints.length(), 1); QCOMPARE(e.touchPoints.first().position(), QPointF(32.75-window.frameMargins().left(), 32.25-window.frameMargins().top())); } @@ -523,13 +524,13 @@ void tst_seatv5::multiTouch() { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchBegin); - QCOMPARE(e.touchPointStates, Qt::TouchPointState::TouchPointPressed); + QCOMPARE(e.touchPointStates, QEventPoint::State::Pressed); QCOMPARE(e.touchPoints.length(), 2); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointPressed); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Pressed); QCOMPARE(e.touchPoints[0].position(), QPointF(32-window.frameMargins().left(), 32-window.frameMargins().top())); - QCOMPARE(e.touchPoints[1].state(), Qt::TouchPointState::TouchPointPressed); + QCOMPARE(e.touchPoints[1].state(), QEventPoint::State::Pressed); QCOMPARE(e.touchPoints[1].position(), QPointF(48-window.frameMargins().left(), 48-window.frameMargins().top())); } { @@ -537,30 +538,30 @@ void tst_seatv5::multiTouch() QCOMPARE(e.type, QEvent::TouchUpdate); QCOMPARE(e.touchPoints.length(), 2); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointMoved); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Updated); QCOMPARE(e.touchPoints[0].position(), QPointF(33-window.frameMargins().left(), 32-window.frameMargins().top())); - QCOMPARE(e.touchPoints[1].state(), Qt::TouchPointState::TouchPointMoved); + QCOMPARE(e.touchPoints[1].state(), QEventPoint::State::Updated); QCOMPARE(e.touchPoints[1].position(), QPointF(49-window.frameMargins().left(), 48-window.frameMargins().top())); } { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchUpdate); - QCOMPARE(e.touchPointStates, Qt::TouchPointState::TouchPointReleased | Qt::TouchPointState::TouchPointStationary); + QCOMPARE(e.touchPointStates, QEventPoint::State::Released | QEventPoint::State::Stationary); QCOMPARE(e.touchPoints.length(), 2); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointReleased); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Released); QCOMPARE(e.touchPoints[0].position(), QPointF(33-window.frameMargins().left(), 32-window.frameMargins().top())); - QCOMPARE(e.touchPoints[1].state(), Qt::TouchPointState::TouchPointStationary); + QCOMPARE(e.touchPoints[1].state(), QEventPoint::State::Stationary); QCOMPARE(e.touchPoints[1].position(), QPointF(49-window.frameMargins().left(), 48-window.frameMargins().top())); } { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchEnd); - QCOMPARE(e.touchPointStates, Qt::TouchPointState::TouchPointReleased); + QCOMPARE(e.touchPointStates, QEventPoint::State::Released); QCOMPARE(e.touchPoints.length(), 1); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointReleased); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Released); QCOMPARE(e.touchPoints[0].position(), QPointF(49-window.frameMargins().left(), 48-window.frameMargins().top())); } } @@ -595,21 +596,21 @@ void tst_seatv5::multiTouchUpAndMotionFrame() { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchBegin); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointPressed); - QCOMPARE(e.touchPoints[1].state(), Qt::TouchPointState::TouchPointPressed); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Pressed); + QCOMPARE(e.touchPoints[1].state(), QEventPoint::State::Pressed); } { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchUpdate); QCOMPARE(e.touchPoints.length(), 2); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointReleased); - QCOMPARE(e.touchPoints[1].state(), Qt::TouchPointState::TouchPointMoved); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Released); + QCOMPARE(e.touchPoints[1].state(), QEventPoint::State::Updated); } { auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchEnd); QCOMPARE(e.touchPoints.length(), 1); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointReleased); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Released); } QVERIFY(window.m_events.empty()); } @@ -637,13 +638,13 @@ void tst_seatv5::tapAndMoveInSameFrame() auto e = window.m_events.takeFirst(); QCOMPARE(e.type, QEvent::TouchBegin); QCOMPARE(e.touchPoints.size(), 1); - QCOMPARE(e.touchPoints[0].state(), Qt::TouchPointState::TouchPointPressed); + QCOMPARE(e.touchPoints[0].state(), QEventPoint::State::Pressed); // Position isn't that important, we just want to make sure we actually get the pressed event } // Make sure we eventually release QTRY_VERIFY(!window.m_events.empty()); - QTRY_COMPARE(window.m_events.last().touchPoints.first().state(), Qt::TouchPointState::TouchPointReleased); + QTRY_COMPARE(window.m_events.last().touchPoints.first().state(), QEventPoint::State::Released); } QCOMPOSITOR_TEST_MAIN(tst_seatv5) |