aboutsummaryrefslogtreecommitdiffstats
path: root/src
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
parentb13668d5304c0c0cef116fb3126d772083a71563 (diff)
Pass PointerEvent into deliverMouseEvent
Change-Id: Ib9e1748cea24851ecc369da5d658654341d291ac Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/quick/items/qquickwindow.cpp13
-rw-r--r--src/quick/items/qquickwindow_p.h2
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 *);