aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2017-04-15 10:12:10 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2017-04-24 17:16:24 +0000
commitd728ad7ace09c2b35d6753fc08c4092ea8813193 (patch)
treed00b01beb41d09c6c9266bf958e3178e64ae6195
parent8576777f1c5e743ef9104ce939f1b5da6ede89d3 (diff)
DragHandler: onGrabChanged, enforceConstraints
If the grab is stolen by a parent such as a Flickable, ensure that the DragHandler doesn't keep dragging. This helps to prevent dragging sliders out of their "groove" constraints. Change-Id: Id24f53e137ed186b1c02ab9c73a69a59022e80b0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
-rw-r--r--src/quick/handlers/qquickdraghandler.cpp6
-rw-r--r--src/quick/handlers/qquickdraghandler_p.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/quick/handlers/qquickdraghandler.cpp b/src/quick/handlers/qquickdraghandler.cpp
index 3b1ec1c344..73ad97712e 100644
--- a/src/quick/handlers/qquickdraghandler.cpp
+++ b/src/quick/handlers/qquickdraghandler.cpp
@@ -73,6 +73,12 @@ bool QQuickDragHandler::wantsEventPoint(QQuickEventPoint *point)
|| QQuickPointerSingleHandler::wantsEventPoint(point));
}
+void QQuickDragHandler::onGrabChanged(QQuickPointerHandler *grabber, QQuickEventPoint::GrabState stateChange, QQuickEventPoint *point)
+{
+ enforceConstraints();
+ QQuickPointerSingleHandler::onGrabChanged(grabber, stateChange, point);
+}
+
void QQuickDragHandler::handleEventPoint(QQuickEventPoint *point)
{
point->setAccepted();
diff --git a/src/quick/handlers/qquickdraghandler_p.h b/src/quick/handlers/qquickdraghandler_p.h
index cfccc19115..a75ea6f2c7 100644
--- a/src/quick/handlers/qquickdraghandler_p.h
+++ b/src/quick/handlers/qquickdraghandler_p.h
@@ -112,6 +112,7 @@ Q_SIGNALS:
protected:
bool wantsEventPoint(QQuickEventPoint *point) override;
+ void onGrabChanged(QQuickPointerHandler *grabber, QQuickEventPoint::GrabState stateChange, QQuickEventPoint *point) override;
private:
void ungrab();