summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qgesturemanager.cpp
diff options
context:
space:
mode:
authorThomas Zander <thomas.zander@trolltech.com>2009-10-30 11:42:49 (GMT)
committerThomas Zander <thomas.zander@trolltech.com>2009-10-30 13:44:22 (GMT)
commitda83365fbf7ff393f7dc99d28eda61b902081bb2 (patch)
tree5ed1261dd6f63e6c1d5e9088383c99c3434a9a2c /src/gui/kernel/qgesturemanager.cpp
parentacb10eefab985a32a619e2a1d590c93659732c00 (diff)
downloadQt-da83365fbf7ff393f7dc99d28eda61b902081bb2.zip
Qt-da83365fbf7ff393f7dc99d28eda61b902081bb2.tar.gz
Qt-da83365fbf7ff393f7dc99d28eda61b902081bb2.tar.bz2
Make GestureCancelPolicy work for graphicsview
Reviewed-By: Denis
Diffstat (limited to 'src/gui/kernel/qgesturemanager.cpp')
-rw-r--r--src/gui/kernel/qgesturemanager.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index f1abc89..1d33c84 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -346,12 +346,7 @@ bool QGestureManager::filterEventThroughContexts(const QMultiHash<QObject *,
QSet<QGesture *> endedGestures =
finishedGestures + canceledGestures + undeliveredGestures;
foreach (QGesture *gesture, endedGestures) {
- if (QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0)) {
- gesture->setGestureCancelPolicy(QGesture::CancelNone);
- recognizer->reset(gesture);
- } else {
- cleanupGesturesForRemovedRecognizer(gesture);
- }
+ recycle(gesture);
m_gestureTargets.remove(gesture);
}
return ret;
@@ -409,15 +404,8 @@ void QGestureManager::cancelGesturesForChildren(QGesture *original)
deliverEvents(gestures, &undeliveredGestures);
}
- for (iter = cancelledGestures.begin(); iter != cancelledGestures.end(); ++iter) {
- QGestureRecognizer *recognizer = m_gestureToRecognizer.value(*iter, 0);
- if (recognizer) {
- (*iter)->setGestureCancelPolicy(QGesture::CancelNone);
- recognizer->reset(*iter);
- } else {
- cleanupGesturesForRemovedRecognizer(*iter);
- }
- }
+ for (iter = cancelledGestures.begin(); iter != cancelledGestures.end(); ++iter)
+ recycle(*iter);
}
void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture)
@@ -667,19 +655,24 @@ void QGestureManager::timerEvent(QTimerEvent *event)
it = m_maybeGestures.erase(it);
DEBUG() << "QGestureManager::timerEvent: gesture stopped due to timeout:"
<< gesture;
- QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0);
- if (recognizer) {
- gesture->setGestureCancelPolicy(QGesture::CancelNone);
- recognizer->reset(gesture);
- } else {
- cleanupGesturesForRemovedRecognizer(gesture);
- }
+ recycle(gesture);
} else {
++it;
}
}
}
+void QGestureManager::recycle(QGesture *gesture)
+{
+ QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0);
+ if (recognizer) {
+ gesture->setGestureCancelPolicy(QGesture::CancelNone);
+ recognizer->reset(gesture);
+ } else {
+ cleanupGesturesForRemovedRecognizer(gesture);
+ }
+}
+
QT_END_NAMESPACE
#include "moc_qgesturemanager_p.cpp"