Details
-
Task
-
Resolution: Unresolved
-
Not Evaluated
-
None
-
None
-
None
Description
We have
static bool handleTabletEnterLeaveProximityEvent(QWindow *window, ulong timestamp, 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 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); static void handleTabletLeaveProximityEvent(int deviceType, int pointerType, qint64 uid);
The first two are better because they take the QPointingDevice*, whereas the last 4 are trying to look up the stylus by its IDs, which can lead to bugs like QTBUG-104878.
After fixing xcb, we have only src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp using the old functions. Each platform plugin, including the evdev plugin, needs to take responsibility for creating and owning the QPointingDevice instances. Then we can delete these last 4 functions to ensure that nobody will make the same mistake when implementing new platforms.
Attachments
Issue Links
- resulted from
-
QTBUG-104878 xcb wacom support gets confused about device instances
- Open