diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-08-01 15:06:04 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-08-02 10:36:01 +0000 |
commit | 0b73cc36f398aad9001439987c6c969afae6492e (patch) | |
tree | ff23cd3d4c1a69201972facbf3601b228a51397e /src/quick/items/qquickwindow.cpp | |
parent | e611c00d8c73f0aae77920646db88c09f0f880fa (diff) |
QQuickWindowPrivate::deliverMouseEvent: use the event's grabber
A tiny step toward delivery unification: the grabber in the given event
(without requiring it to be a mouse event) should be the same as the
current mouse grabber.
Change-Id: Ice5530d01d999be78b5d10b509f669f247d4bae9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index e08147d7b0..ad174d66ff 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -1651,17 +1651,16 @@ void QQuickWindowPrivate::deliverInitialMousePressEvent(QQuickPointerMouseEvent void QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent *pointerEvent) { Q_Q(QQuickWindow); - - lastMousePosition = pointerEvent->point(0)->scenePos(); - - QQuickItem *mouseGrabberItem = q->mouseGrabberItem(); - if (mouseGrabberItem) { + auto point = pointerEvent->point(0); + lastMousePosition = point->scenePos(); + QQuickItem *grabber = point->grabber(); + if (grabber) { // send update - QPointF localPos = mouseGrabberItem->mapFromScene(lastMousePosition); + QPointF localPos = grabber->mapFromScene(lastMousePosition); auto me = pointerEvent->asMouseEvent(localPos); me->accept(); - q->sendEvent(mouseGrabberItem, me); - pointerEvent->point(0)->setAccepted(me->isAccepted()); + q->sendEvent(grabber, me); + point->setAccepted(me->isAccepted()); // release event, make sure to ungrab if there still is a grabber if (me->type() == QEvent::MouseButtonRelease && !me->buttons() && q->mouseGrabberItem()) |