aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindow.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2016-08-04 13:20:24 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2016-08-04 14:10:13 +0000
commit4ecd73fbed2afe71dc7302bafd595518a4779541 (patch)
treeddde4ab0bdfebcd7538774f6ea7809f5ff66f943 /src/quick/items/qquickwindow.cpp
parentc75c4201bc26d6e85abace15d5e773b0702bacd2 (diff)
Pass pointerEvent into QQuickWindowPrivate::deliverTouchAsMouse
Change-Id: I53c737498f27db3e1fea4fd2f9e10f75a2b48d14 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r--src/quick/items/qquickwindow.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index cf50733d1b..80d867a05c 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -622,10 +622,14 @@ bool QQuickWindowPrivate::checkIfDoubleClicked(ulong newPressEventTimestamp)
return doubleClicked;
}
-bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QTouchEvent *event)
+bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QQuickPointerEvent *pointerEvent)
{
Q_Q(QQuickWindow);
- auto device = QQuickPointerDevice::touchDevice(event->device());
+ auto device = pointerEvent->device();
+
+ // FIXME: make this work for mouse events too and get rid of the asTouchEvent in here.
+ Q_ASSERT(pointerEvent->asPointerTouchEvent());
+ QTouchEvent *event = pointerEvent->asPointerTouchEvent()->touchEventForItem(item);
// For each point, check if it is accepted, if not, try the next point.
// Any of the fingers can become the mouse one.
@@ -640,8 +644,7 @@ bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QTouchEvent *eve
if (!item->contains(pos))
break;
- // FIXME: this is a bit backwards, should just have the pointer event passed into the function
- auto pointerEventPoint = device->pointerEvent()->pointById(p.id());
+ auto pointerEventPoint = pointerEvent->pointById(p.id());
pointerEventPoint->setGrabber(item);
qCDebug(DBG_TOUCH_TARGET) << "TP (mouse)" << p.id() << "->" << item;
QScopedPointer<QMouseEvent> mousePress(touchToMouseEvent(QEvent::MouseButtonPress, p, event, item, false));
@@ -2285,7 +2288,7 @@ bool QQuickWindowPrivate::deliverMatchingPointsToItem(QQuickItem *item, QQuickPo
QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
if (!eventAccepted && (itemPrivate->acceptedMouseButtons() & Qt::LeftButton)) {
// send mouse event
- if (deliverTouchAsMouse(item, touchEvent.data()))
+ if (deliverTouchAsMouse(item, event))
eventAccepted = true;
}