aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickevents.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2017-02-20 17:52:08 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2017-02-22 05:39:29 +0000
commit013032ae44c5118ae2d096d0dba47bc4114d96d1 (patch)
tree6c11c0d6bf5de3ea996b78dd493b25a4e07ab4dc /src/quick/items/qquickevents.cpp
parent7c3baca698d5e3e6481a248a7d6c6abc41696304 (diff)
notify a PointerHandler when it loses grab via EventPoint::setGrabberItem
If an Item gets exclusive grab, that replaces any existing PointerHandler's exclusive grab, and overrides any passive grabbers as well. Change-Id: I659137a08e7069c8e72ddbb1f27e16d4b19828b9 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/quick/items/qquickevents.cpp')
-rw-r--r--src/quick/items/qquickevents.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp
index 0c06ecd677..c78df999e8 100644
--- a/src/quick/items/qquickevents.cpp
+++ b/src/quick/items/qquickevents.cpp
@@ -609,6 +609,10 @@ void QQuickEventPoint::setGrabberItem(QQuickItem *grabber)
qCDebug(lcPointerGrab) << pointDeviceName(this) << "point" << hex << m_pointId << pointStateString(this)
<< ": grab" << m_exclusiveGrabber << "->" << grabber;
}
+ if (auto handler = grabberPointerHandler())
+ handler->onGrabChanged(handler, CancelGrabExclusive, this);
+ for (QPointer<QQuickPointerHandler> passiveGrabber : m_passiveGrabbers)
+ passiveGrabber->onGrabChanged(passiveGrabber, OverrideGrabPassive, this);
m_exclusiveGrabber = QPointer<QObject>(grabber);
m_grabberIsHandler = false;
m_sceneGrabPos = m_scenePos;