aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindow.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2016-07-29 13:24:38 +0200
committerFrederik Gladhorn <frederik.gladhorn@qt.io>2016-07-31 21:46:49 +0000
commit8e0c446b28c661944a8c014145134d80e2282a51 (patch)
treed5b4b7f40b68503ef5c3f4ed6eb6011a229d5b7a /src/quick/items/qquickwindow.cpp
parentb13668d5304c0c0cef116fb3126d772083a71563 (diff)
Pass PointerEvent into deliverMouseEvent
Change-Id: Ib9e1748cea24851ecc369da5d658654341d291ac Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r--src/quick/items/qquickwindow.cpp13
1 files changed, 6 insertions, 7 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 {