summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qevent.cpp23
-rw-r--r--src/gui/kernel/qevent.h8
-rw-r--r--src/gui/kernel/qevent_p.h2
3 files changed, 16 insertions, 17 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index df8a18beb0..2414a0d951 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -65,9 +65,7 @@ Q_LOGGING_CATEGORY(lcPointerGrab, "qt.pointer.grab")
static const QString pointDeviceName(const QEventPoint *point)
{
- if (!point->event())
- return {};
- auto device = point->event()->device();
+ const auto device = point->device();
QString deviceName = (device ? device->name() : QLatin1String("null device"));
deviceName.resize(16, u' '); // shorten, and align in case of sequential output
return deviceName;
@@ -228,13 +226,14 @@ QInputEvent::~QInputEvent()
/*!
\internal
- Constructs an invalid event point with the given \a id and \a parent.
+ Constructs an invalid event point with the given \a id and the \a device
+ from which it originated.
This acts as a default constructor in usages like QMap<int, QEventPoint>,
as in qgraphicsscene_p.h.
*/
-QEventPoint::QEventPoint(int id, const QPointerEvent *parent)
- : m_parent(parent), m_pointId(id), m_state(State::Unknown), m_accept(false), m_stationaryWithModifiedProperty(false), m_reserved(0)
+QEventPoint::QEventPoint(int id, const QPointingDevice *device)
+ : m_device(device), m_pointId(id), m_state(State::Unknown), m_accept(false), m_stationaryWithModifiedProperty(false), m_reserved(0)
{
}
@@ -323,7 +322,7 @@ void QEventPoint::clearPassiveGrabbers()
QPointF QEventPoint::normalizedPos() const
{
- auto geom = event()->device()->availableVirtualGeometry();
+ auto geom = m_device->availableVirtualGeometry();
if (geom.isNull())
return QPointF();
return (globalPosition() - geom.topLeft()) / geom.width();
@@ -331,7 +330,7 @@ QPointF QEventPoint::normalizedPos() const
QPointF QEventPoint::startNormalizedPos() const
{
- auto geom = event()->device()->availableVirtualGeometry();
+ auto geom = m_device->availableVirtualGeometry();
if (geom.isNull())
return QPointF();
return (globalPressPosition() - geom.topLeft()) / geom.width();
@@ -339,7 +338,7 @@ QPointF QEventPoint::startNormalizedPos() const
QPointF QEventPoint::lastNormalizedPos() const
{
- auto geom = event()->device()->availableVirtualGeometry();
+ auto geom = m_device->availableVirtualGeometry();
if (geom.isNull())
return QPointF();
return (globalLastPosition() - geom.topLeft()) / geom.width();
@@ -369,7 +368,7 @@ const QPointingDevice *QPointerEvent::pointingDevice() const
QSinglePointEvent::QSinglePointEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &localPos, const QPointF &scenePos,
const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
: QPointerEvent(type, dev, modifiers),
- m_point(0, this),
+ m_point(0, dev),
m_button(button),
m_mouseState(buttons),
m_source(Qt::MouseEventNotSynthesized),
@@ -4243,7 +4242,7 @@ QTouchEvent::QTouchEvent(QEvent::Type eventType,
{
for (QEventPoint &point : m_touchPoints) {
m_touchPointStates |= point.state();
- QMutableEventPoint::from(point).setParent(this);
+ QMutableEventPoint::from(point).setDevice(device);
}
}
@@ -4266,7 +4265,7 @@ QTouchEvent::QTouchEvent(QEvent::Type eventType,
m_touchPoints(touchPoints)
{
for (QEventPoint &point : m_touchPoints)
- QMutableEventPoint::from(point).setParent(this);
+ QMutableEventPoint::from(point).setDevice(device);
}
/*!
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index 8ba138a1bb..86878bfb67 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -106,10 +106,9 @@ public:
Q_DECLARE_FLAGS(States, State)
Q_FLAG(States)
- QEventPoint(int id = -1, const QPointerEvent *parent = nullptr);
+ QEventPoint(int id = -1, const QPointingDevice *device = nullptr);
QEventPoint(int pointId, State state, const QPointF &scenePosition, const QPointF &globalPosition);
- const QPointerEvent *event() const { return m_parent; }
QPointF position() const { return m_pos; }
QPointF pressPosition() const { return m_globalPressPos - m_globalPos + m_pos; }
QPointF grabPosition() const { return m_globalGrabPos - m_globalPos + m_pos; }
@@ -152,6 +151,7 @@ public:
#endif // QT_DEPRECATED_SINCE(6, 0)
QVector2D velocity() const { return m_velocity; }
State state() const { return m_state; }
+ const QPointingDevice *device() const { return m_device; }
int id() const { return m_pointId; }
QPointingDeviceUniqueId uniqueId() const { return m_uniqueId; }
ulong pressTimestamp() const { return m_pressTimestamp; }
@@ -169,7 +169,7 @@ public:
void clearPassiveGrabbers();
protected:
- const QPointerEvent *m_parent = nullptr;
+ const QPointingDevice *m_device = nullptr;
QPointF m_pos, m_scenePos, m_globalPos,
m_globalPressPos, m_globalGrabPos, m_globalLastPos;
qreal m_pressure = 1;
@@ -178,7 +178,7 @@ protected:
QVector2D m_velocity;
QPointer<QObject> m_exclusiveGrabber;
QList<QPointer <QObject> > m_passiveGrabbers;
- ulong m_timestamp = 0; // redundant with m_parent->timestamp(), but keeps timeHeld() working in a saved copy
+ ulong m_timestamp = 0;
ulong m_pressTimestamp = 0;
QPointingDeviceUniqueId m_uniqueId;
int m_pointId = -1;
diff --git a/src/gui/kernel/qevent_p.h b/src/gui/kernel/qevent_p.h
index 275a56eeb6..a8da0aede2 100644
--- a/src/gui/kernel/qevent_p.h
+++ b/src/gui/kernel/qevent_p.h
@@ -84,7 +84,7 @@ public:
void setId(int pointId) { m_pointId = pointId; }
- void setParent(const QPointerEvent *p) { m_parent = p; }
+ void setDevice(const QPointingDevice *device) { m_device = device; }
void setTimestamp(const ulong t) { m_timestamp = t; }