aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindow_p.h
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2016-07-14 11:17:54 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2016-07-15 13:26:56 +0000
commit288c1425d6e3ac200dd8e687f13de6ce4a41260b (patch)
tree78cba9a5ffd2416f0c2a703c8ec16e02b221275b /src/quick/items/qquickwindow_p.h
parent6ce37a1eed9a41b036872bbbac2a5e73c6cbf9eb (diff)
QQuickWindow: keep a collection of devices which own event instances
That will allow the event instances to hold state, even between events. So now every QQuickWindow has its own set of them, per device. Hopefully that means we won't have any trouble delivering events in parallel in case each window has its own thread. Otherwise maybe it's slightly wasteful in multi-window apps. Change-Id: I766b580e1c177255905cc04b5de7d33ae503c6fd Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/quick/items/qquickwindow_p.h')
-rw-r--r--src/quick/items/qquickwindow_p.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/quick/items/qquickwindow_p.h b/src/quick/items/qquickwindow_p.h
index 7183d17514..ab704b9adf 100644
--- a/src/quick/items/qquickwindow_p.h
+++ b/src/quick/items/qquickwindow_p.h
@@ -163,6 +163,7 @@ public:
void deliverDelayedTouchEvent();
// delivery of pointer events:
+ QQuickPointerEvent *pointerEventInstance(QEvent *ev);
void deliverPointerEvent(QQuickPointerEvent *);
void deliverTouchEvent(QQuickPointerEvent *);
bool deliverTouchCancelEvent(QTouchEvent *);
@@ -245,9 +246,10 @@ public:
QQuickAnimatorController *animationController;
QScopedPointer<QTouchEvent> delayedTouch;
- // The current touch or mouse event that is delivered.
- // This event gets re-used (reset) for every incoming mouse/touch event.
- QQuickPointerEvent currentPointerEvent;
+ // An event instance for each device that we've seen so far.
+ // One of these gets re-used (reset) for every incoming mouse/touch/tablet event.
+ // One reason to keep them separate is so that m_touchPoints will be only those from a single device.
+ QVector<QQuickPointerEvent> pointerEventsByDevice;
int pointerEventRecursionGuard;
QQuickCustomRenderStage *customRenderStage;