diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-07-12 01:00:58 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2019-07-12 12:00:31 +0200 |
commit | b0a4c4808f54a2cbe64a75f1a5a341be420b584c (patch) | |
tree | d71f43142497c03df9fe7826b52512c4ed2153ef /src/quick/handlers | |
parent | 47ad6c57d1873c3da362cfad7cc81dc0aa2720a4 (diff) | |
parent | f3d40896c1d8601703fcbf30214e22f50eb72727 (diff) |
Merge remote-tracking branch 'origin/5.12' into 5.13
Required a change to a #include; qquicksinglepointhandler.cpp was (at
least on Android) only seeing QQuickSinglePointHandler as a forward
declaration, so dereferencing it was a problem. The header that
defines it does #include the one it replaces here.
Change-Id: I6bc30ff9a91f55350172e4a4bcaaa7f99a2ffb28
Diffstat (limited to 'src/quick/handlers')
-rw-r--r-- | src/quick/handlers/qquickhandlerpoint.cpp | 15 | ||||
-rw-r--r-- | src/quick/handlers/qquickhoverhandler.cpp | 3 | ||||
-rw-r--r-- | src/quick/handlers/qquickpointerdevicehandler.cpp | 4 | ||||
-rw-r--r-- | src/quick/handlers/qquicksinglepointhandler.cpp | 3 | ||||
-rw-r--r-- | src/quick/handlers/qquicktaphandler.cpp | 9 |
5 files changed, 12 insertions, 22 deletions
diff --git a/src/quick/handlers/qquickhandlerpoint.cpp b/src/quick/handlers/qquickhandlerpoint.cpp index de21537f27..f3d92cf200 100644 --- a/src/quick/handlers/qquickhandlerpoint.cpp +++ b/src/quick/handlers/qquickhandlerpoint.cpp @@ -51,13 +51,14 @@ Q_DECLARE_LOGGING_CATEGORY(DBG_TOUCH_TARGET) A QML representation of a QQuickEventPoint. - It's possible to make bindings to properties of a \l SinglePointHandler's - current point. For example: + It's possible to make bindings to properties of a handler's current + \l {SinglePointHandler::point}{point} or + \l {MultiPointHandler::centroid}{centroid}. For example: \snippet pointerHandlers/dragHandlerNullTarget.qml 0 The point is kept up-to-date when the DragHandler is actively responding to - an EventPoint; but when the point is released, or the current point is + an EventPoint; but after the point is released, or when the current point is being handled by a different handler, \c position.x and \c position.y are 0. \note This is practically identical to QtQuick::EventPoint; however an @@ -68,7 +69,7 @@ Q_DECLARE_LOGGING_CATEGORY(DBG_TOUCH_TARGET) handler is handling. HandlerPoint is a Q_GADGET that the handler owns. This allows you to make lifetime bindings to its properties. - \sa SinglePointHandler::point + \sa SinglePointHandler::point, MultiPointHandler::centroid */ QQuickHandlerPoint::QQuickHandlerPoint() @@ -106,12 +107,6 @@ void QQuickHandlerPoint::reset(const QQuickEventPoint *point) m_scenePressPosition = point->scenePosition(); m_pressedButtons = event->buttons(); break; - case QQuickEventPoint::Released: - if (event->buttons() == Qt::NoButton) { - reset(); - return; - } - break; default: break; } diff --git a/src/quick/handlers/qquickhoverhandler.cpp b/src/quick/handlers/qquickhoverhandler.cpp index 61955cad03..d7566f0cd8 100644 --- a/src/quick/handlers/qquickhoverhandler.cpp +++ b/src/quick/handlers/qquickhoverhandler.cpp @@ -38,6 +38,7 @@ ****************************************************************************/ #include "qquickhoverhandler_p.h" +#include <private/qquicksinglepointhandler_p_p.h> QT_BEGIN_NAMESPACE @@ -59,6 +60,8 @@ Q_LOGGING_CATEGORY(lcHoverHandler, "qt.quick.handler.hover") QQuickHoverHandler::QQuickHoverHandler(QQuickItem *parent) : QQuickSinglePointHandler(parent) { + // Tell QQuickPointerDeviceHandler::wantsPointerEvent() to ignore button state + d_func()->acceptedButtons = Qt::NoButton; // Rule out the touchscreen for now (can be overridden in QML in case a hover-detecting touchscreen exists) setAcceptedDevices(static_cast<QQuickPointerDevice::DeviceType>( static_cast<int>(QQuickPointerDevice::AllDevices) ^ static_cast<int>(QQuickPointerDevice::TouchScreen))); diff --git a/src/quick/handlers/qquickpointerdevicehandler.cpp b/src/quick/handlers/qquickpointerdevicehandler.cpp index 096fad2071..246686e4f4 100644 --- a/src/quick/handlers/qquickpointerdevicehandler.cpp +++ b/src/quick/handlers/qquickpointerdevicehandler.cpp @@ -256,6 +256,10 @@ bool QQuickPointerDeviceHandler::wantsPointerEvent(QQuickPointerEvent *event) return false; if (d->acceptedModifiers != Qt::KeyboardModifierMask && event->modifiers() != d->acceptedModifiers) return false; + // HoverHandler sets acceptedButtons to Qt::NoButton to indicate that button state is irrelevant. + if (event->device()->pointerType() != QQuickPointerDevice::Finger && acceptedButtons() != Qt::NoButton && + (event->buttons() & acceptedButtons()) == 0 && (event->button() & acceptedButtons()) == 0) + return false; return true; } diff --git a/src/quick/handlers/qquicksinglepointhandler.cpp b/src/quick/handlers/qquicksinglepointhandler.cpp index c0fa39fad3..15fe0cc89e 100644 --- a/src/quick/handlers/qquicksinglepointhandler.cpp +++ b/src/quick/handlers/qquicksinglepointhandler.cpp @@ -74,9 +74,6 @@ bool QQuickSinglePointHandler::wantsPointerEvent(QQuickPointerEvent *event) Q_D(QQuickSinglePointHandler); if (!QQuickPointerDeviceHandler::wantsPointerEvent(event)) return false; - if (event->device()->pointerType() != QQuickPointerDevice::Finger && - (event->buttons() & acceptedButtons()) == 0 && (event->button() & acceptedButtons()) == 0) - return false; if (d->pointInfo.id()) { // We already know which one we want, so check whether it's there. diff --git a/src/quick/handlers/qquicktaphandler.cpp b/src/quick/handlers/qquicktaphandler.cpp index 40a4813527..255e47d73a 100644 --- a/src/quick/handlers/qquicktaphandler.cpp +++ b/src/quick/handlers/qquicktaphandler.cpp @@ -392,9 +392,6 @@ void QQuickTapHandler::updateTimeHeld() from the release event about the point that was tapped: \snippet pointerHandlers/tapHandlerOnTapped.qml 0 - - \note At the time this signal is emitted, \l point has been reset - (all coordinates are \c 0). */ /*! @@ -406,9 +403,6 @@ void QQuickTapHandler::updateTimeHeld() it can be tapped again; but if the time until the next tap is less, \l tapCount will increase. The \c eventPoint signal parameter contains information from the release event about the point that was tapped. - - \note At the time this signal is emitted, \l point has been reset - (all coordinates are \c 0). */ /*! @@ -422,9 +416,6 @@ void QQuickTapHandler::updateTimeHeld() \l singleTapped, \l tapped, and \l tapCountChanged. The \c eventPoint signal parameter contains information from the release event about the point that was tapped. - - \note At the time this signal is emitted, \l point has been reset - (all coordinates are \c 0). */ /*! |