diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2016-07-29 13:24:38 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@qt.io> | 2016-07-31 21:46:49 +0000 |
commit | 8e0c446b28c661944a8c014145134d80e2282a51 (patch) | |
tree | d5b4b7f40b68503ef5c3f4ed6eb6011a229d5b7a /src/quick | |
parent | b13668d5304c0c0cef116fb3126d772083a71563 (diff) |
Pass PointerEvent into deliverMouseEvent
Change-Id: Ib9e1748cea24851ecc369da5d658654341d291ac
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 13 | ||||
-rw-r--r-- | src/quick/items/qquickwindow_p.h | 2 |
2 files changed, 7 insertions, 8 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 378b21c8cc..c1167ad8a5 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -1647,14 +1647,14 @@ bool QQuickWindowPrivate::deliverInitialMousePressEvent(QMouseEvent *event) return false; } -void QQuickWindowPrivate::deliverMouseEvent(QMouseEvent *event) +void QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent *pointerEvent) { Q_Q(QQuickWindow); + auto event = pointerEvent->asMouseEvent(); - lastMousePosition = event->windowPos(); + lastMousePosition = pointerEvent->point(0)->scenePos(); QQuickItem *mouseGrabberItem = q->mouseGrabberItem(); - if (mouseGrabberItem) { // send update QPointF localPos = mouseGrabberItem->mapFromScene(event->windowPos()); @@ -1669,8 +1669,7 @@ void QQuickWindowPrivate::deliverMouseEvent(QMouseEvent *event) } else { // send initial press event->setAccepted(false); - if ((event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonDblClick) && - (event->buttons() & event->button()) == event->buttons()) { + if (pointerEvent->isPressEvent()) { bool delivered = deliverInitialMousePressEvent(event); event->setAccepted(delivered); } @@ -2129,8 +2128,8 @@ void QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent *event) // the usecase a bit evil, but we at least don't want to lose events. ++pointerEventRecursionGuard; - if (QQuickPointerMouseEvent *mouse = event->asPointerMouseEvent()) { - deliverMouseEvent(mouse->asMouseEvent()); + if (event->asPointerMouseEvent()) { + deliverMouseEvent(event->asPointerMouseEvent()); } else if (event->asPointerTouchEvent()) { deliverTouchEvent(event->asPointerTouchEvent()); } else { diff --git a/src/quick/items/qquickwindow_p.h b/src/quick/items/qquickwindow_p.h index e5492cf031..61d57692a7 100644 --- a/src/quick/items/qquickwindow_p.h +++ b/src/quick/items/qquickwindow_p.h @@ -146,7 +146,7 @@ public: static void transformTouchPoints(QList<QTouchEvent::TouchPoint> &touchPoints, const QTransform &transform); static QMouseEvent *cloneMouseEvent(QMouseEvent *event, QPointF *transformedLocalPos = 0); bool deliverInitialMousePressEvent(QMouseEvent *); - void deliverMouseEvent(QMouseEvent *); + void deliverMouseEvent(QQuickPointerMouseEvent *pointerEvent); bool sendFilteredMouseEvent(QQuickItem *, QQuickItem *, QEvent *, QSet<QQuickItem *> *); #ifndef QT_NO_WHEELEVENT bool deliverWheelEvent(QQuickItem *, QWheelEvent *); |