diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2016-07-29 00:11:42 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@qt.io> | 2016-07-28 22:55:48 +0000 |
commit | 451efdbe41d3381c3d8c42117662c2eea5436ff0 (patch) | |
tree | 1e1bcc430160db4343673426f96b4895c94e052b /src/quick/items/qquickwindow.cpp | |
parent | c796b43c429a7a3f04784e32b1e1a07d9da57109 (diff) |
Move mouse release handling into deliverMouseEvent
Change-Id: I4071a5fa217230883b6b99b2f37cdcd459aa14c5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 16d99e961a..72b181fcdd 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -1662,8 +1662,13 @@ void QQuickWindowPrivate::deliverMouseEvent(QMouseEvent *event) me->accept(); q->sendEvent(mouseGrabberItem, me.data()); event->setAccepted(me->isAccepted()); + + // release event, make sure to ungrab if there still is a grabber + if (event->type() == QEvent::MouseButtonRelease && !event->buttons() && q->mouseGrabberItem()) + q->mouseGrabberItem()->ungrabMouse(); } else { // send initial press + event->setAccepted(false); if ((event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonDblClick) && (event->buttons() & event->button()) == event->buttons()) { bool delivered = deliverInitialMousePressEvent(event); @@ -2022,14 +2027,7 @@ void QQuickWindowPrivate::handleMouseEvent(QMouseEvent *event) case QEvent::MouseButtonRelease: Q_QUICK_INPUT_PROFILE(QQuickProfiler::Mouse, QQuickProfiler::InputMouseRelease, event->button(), event->buttons()); - if (!q->mouseGrabberItem()) { - event->ignore(); - return; - } - deliverPointerEvent(pointerEventInstance(event)); - if (q->mouseGrabberItem() && !event->buttons()) - q->mouseGrabberItem()->ungrabMouse(); break; case QEvent::MouseButtonDblClick: Q_QUICK_INPUT_PROFILE(QQuickProfiler::Mouse, QQuickProfiler::InputMouseDoubleClick, |