From 9ed75b6716e749403c5ed33ad0bd544a9e5a27ad Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 16 Oct 2020 11:32:40 +0200 Subject: QWindowSystemInterface: Add tablet event overloads without timestamps On some platforms, tablet events do not have a time stamp. Task-number: QTBUG-46412 Change-Id: I3cc820b1edaaf55511c000fefb805f5a3a7872a6 Reviewed-by: Shawn Rutledge --- src/gui/kernel/qwindowsysteminterface.cpp | 25 +++++++++++++++++++++++++ src/gui/kernel/qwindowsysteminterface.h | 9 +++++++++ 2 files changed, 34 insertions(+) diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp index 7da812f64d..15caa4df46 100644 --- a/src/gui/kernel/qwindowsysteminterface.cpp +++ b/src/gui/kernel/qwindowsysteminterface.cpp @@ -921,6 +921,18 @@ bool QWindowSystemInterface::handleTabletEvent(QWindow *window, ulong timestamp, return QWindowSystemInterfacePrivate::handleWindowSystemEvent(e); } +bool QWindowSystemInterface::handleTabletEvent(QWindow *window, const QPointingDevice *device, + const QPointF &local, const QPointF &global, + Qt::MouseButtons buttons, qreal pressure, int xTilt, int yTilt, + qreal tangentialPressure, qreal rotation, int z, + Qt::KeyboardModifiers modifiers) +{ + const ulong time = QWindowSystemInterfacePrivate::eventTime.elapsed(); + return handleTabletEvent(window, time, device, local, global, + buttons, pressure, xTilt, yTilt, tangentialPressure, + rotation, z, modifiers); +} + bool QWindowSystemInterface::handleTabletEvent(QWindow *window, ulong timestamp, const QPointF &local, const QPointF &global, int device, int pointerType, Qt::MouseButtons buttons, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, qint64 uid, @@ -969,6 +981,19 @@ bool QWindowSystemInterface::handleTabletEnterLeaveProximityEvent(QWindow *windo } } +bool QWindowSystemInterface::handleTabletEnterLeaveProximityEvent(QWindow *window, const QPointingDevice *device, + bool inProximity, const QPointF &local, const QPointF &global, + Qt::MouseButtons buttons, int xTilt, int yTilt, + qreal tangentialPressure, qreal rotation, int z, + Qt::KeyboardModifiers modifiers) +{ + const ulong time = QWindowSystemInterfacePrivate::eventTime.elapsed(); + return handleTabletEnterLeaveProximityEvent(window, time, device, inProximity, + local, global, buttons, xTilt, yTilt, + tangentialPressure, rotation, z, modifiers); +} + + bool QWindowSystemInterface::handleTabletEnterProximityEvent(ulong timestamp, int deviceType, int pointerType, qint64 uid) { const QPointingDevice *device = QPointingDevicePrivate::tabletDevice(QInputDevice::DeviceType(deviceType), diff --git a/src/gui/kernel/qwindowsysteminterface.h b/src/gui/kernel/qwindowsysteminterface.h index a2984884eb..80a66311c0 100644 --- a/src/gui/kernel/qwindowsysteminterface.h +++ b/src/gui/kernel/qwindowsysteminterface.h @@ -257,6 +257,10 @@ public: const QPointF &local, const QPointF &global, Qt::MouseButtons buttons, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers modifiers = Qt::NoModifier); + static bool handleTabletEvent(QWindow *window, const QPointingDevice *device, + const QPointF &local, const QPointF &global, + Qt::MouseButtons buttons, qreal pressure, int xTilt, int yTilt, + qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers modifiers = Qt::NoModifier); static bool handleTabletEvent(QWindow *window, ulong timestamp, const QPointF &local, const QPointF &global, int device, int pointerType, Qt::MouseButtons buttons, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, qint64 uid, @@ -270,6 +274,11 @@ public: Qt::MouseButtons buttons = {}, int xTilt = 0, int yTilt = 0, qreal tangentialPressure = 0, qreal rotation = 0, int z = 0, Qt::KeyboardModifiers modifiers = Qt::NoModifier); + static bool handleTabletEnterLeaveProximityEvent(QWindow *window, const QPointingDevice *device, + bool inProximity, const QPointF &local = QPointF(), const QPointF &global = QPointF(), + Qt::MouseButtons buttons = {}, int xTilt = 0, int yTilt = 0, + qreal tangentialPressure = 0, qreal rotation = 0, int z = 0, + Qt::KeyboardModifiers modifiers = Qt::NoModifier); static bool handleTabletEnterProximityEvent(ulong timestamp, int deviceType, int pointerType, qint64 uid); static void handleTabletEnterProximityEvent(int deviceType, int pointerType, qint64 uid); static bool handleTabletLeaveProximityEvent(ulong timestamp, int deviceType, int pointerType, qint64 uid); -- cgit v1.2.3