From 4ebe96275944643a06ac4119ef707e1436df5781 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 2 Jun 2010 11:33:24 +0200 Subject: Reset gesture when in MayBeGesture state. When a gesture recognizer switches from MayBeGesture to Cancelled gesture we need to reset the state of the recognizer, but do not send any events to the user. Reviewed-by: Thomas Zander --- src/gui/kernel/qgesturemanager.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index 43facef..7363d70 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -284,6 +284,9 @@ bool QGestureManager::filterEventThroughContexts(const QMultiMap activeToMaybeGestures = m_activeGestures & newMaybeGestures; + // check if a maybe gesture switched to canceled - reset it but don't send an event + QSet maybeToCanceledGestures = m_maybeGestures & notGestures; + // check if a running gesture switched back to not gesture state, // i.e. were canceled QSet canceledGestures = m_activeGestures & notGestures; @@ -343,7 +346,8 @@ bool QGestureManager::filterEventThroughContexts(const QMultiMap undeliveredGestures; @@ -364,7 +368,7 @@ bool QGestureManager::filterEventThroughContexts(const QMultiMap endedGestures = - finishedGestures + canceledGestures + undeliveredGestures; + finishedGestures + canceledGestures + undeliveredGestures + maybeToCanceledGestures; foreach (QGesture *gesture, endedGestures) { recycle(gesture); m_gestureTargets.remove(gesture); -- cgit v0.12