diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-12-30 10:04:51 +0100 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-12-30 10:28:23 +0000 |
commit | c05f596d958349e67c3e3cb89b3bc6d35d2052ea (patch) | |
tree | 794f7ccb7d52bb74a7e7a0963a8f460ec05f0550 /src/quick/handlers/qquickpointerhandler.cpp | |
parent | 9da67896e7f84bba5db66b49cba659077c35c870 (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.cpp | 8 |
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); |