aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/handlers/qquickpointerhandler.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2016-12-30 10:04:51 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2016-12-30 10:28:23 +0000
commitc05f596d958349e67c3e3cb89b3bc6d35d2052ea (patch)
tree794f7ccb7d52bb74a7e7a0963a8f460ec05f0550 /src/quick/handlers/qquickpointerhandler.cpp
parent9da67896e7f84bba5db66b49cba659077c35c870 (diff)
QQuickPointerHandler::setGrab: don't emit grabChanged if it didn't
When requested to grab, it was emitting this signal and calling onGrabChanged every time. Change-Id: I32ce80e4d6ff8b8e950b5d2f977bd737e31b8ac8 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/quick/handlers/qquickpointerhandler.cpp')
-rw-r--r--src/quick/handlers/qquickpointerhandler.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/quick/handlers/qquickpointerhandler.cpp b/src/quick/handlers/qquickpointerhandler.cpp
index ed08eed93e..0398863ba3 100644
--- a/src/quick/handlers/qquickpointerhandler.cpp
+++ b/src/quick/handlers/qquickpointerhandler.cpp
@@ -75,14 +75,14 @@ QQuickPointerHandler::~QQuickPointerHandler()
void QQuickPointerHandler::setGrab(QQuickEventPoint *point, bool grab)
{
- if (grab) {
- QQuickPointerHandler *oldGrabber = point->grabberPointerHandler();
- if (oldGrabber && oldGrabber != this)
+ QQuickPointerHandler *oldGrabber = point->grabberPointerHandler();
+ if (grab && oldGrabber != this) {
+ if (oldGrabber)
oldGrabber->handleGrabCancel(point);
point->setGrabberPointerHandler(this);
onGrabChanged(point);
emit grabChanged(point);
- } else if (point->grabberPointerHandler() == this) {
+ } else if (!grab && oldGrabber == this) {
point->setGrabberPointerHandler(nullptr);
onGrabChanged(point);
emit grabChanged(point);