diff -r 56cd8111b7f7 -r 41300fa6a67c src/gui/kernel/qgesturemanager_p.h --- a/src/gui/kernel/qgesturemanager_p.h Tue Jan 26 12:42:25 2010 +0200 +++ b/src/gui/kernel/qgesturemanager_p.h Tue Feb 02 00:43:10 2010 +0200 @@ -73,22 +73,27 @@ void unregisterGestureRecognizer(Qt::GestureType type); bool filterEvent(QWidget *receiver, QEvent *event); - bool filterEvent(QGesture *receiver, QEvent *event); + bool filterEvent(QObject *receiver, QEvent *event); +#ifndef QT_NO_GRAPHICSVIEW bool filterEvent(QGraphicsObject *receiver, QEvent *event); +#endif //QT_NO_GRAPHICSVIEW - // declared in qapplication.cpp static QGestureManager* instance(); + void cleanupCachedGestures(QObject *target, Qt::GestureType type); + + void recycle(QGesture *gesture); + protected: void timerEvent(QTimerEvent *event); - bool filterEventThroughContexts(const QMap &contexts, + bool filterEventThroughContexts(const QMultiMap &contexts, QEvent *event); private: - QMultiMap recognizers; + QMultiMap m_recognizers; - QSet activeGestures; - QMap maybeGestures; + QSet m_activeGestures; + QHash m_maybeGestures; enum State { Gesture, @@ -104,7 +109,7 @@ Qt::GestureType gesture; ObjectGesture(QObject *o, const Qt::GestureType &g) : object(o), gesture(g) { } - inline bool operator<(const ObjectGesture& rhs) const + inline bool operator<(const ObjectGesture &rhs) const { if (object.data() < rhs.object.data()) return true; @@ -114,22 +119,31 @@ } }; - QMap objectGestures; - QMap gestureToRecognizer; - QHash gestureOwners; + QMap > m_objectGestures; + QHash m_gestureToRecognizer; + QHash m_gestureOwners; + + QHash m_gestureTargets; - QHash gestureTargets; + int m_lastCustomGestureId; - int lastCustomGestureId; + QHash > m_obsoleteGestures; + QHash m_deletedRecognizers; + void cleanupGesturesForRemovedRecognizer(QGesture *gesture); - QGesture *getState(QObject *widget, Qt::GestureType gesture); + QGesture *getState(QObject *widget, QGestureRecognizer *recognizer, + Qt::GestureType gesture); void deliverEvents(const QSet &gestures, QSet *undeliveredGestures); void getGestureTargets(const QSet &gestures, QMap > *conflicts, QMap > *normal); + + void cancelGesturesForChildren(QGesture *originatingGesture); }; +extern QGestureManager *qt_gestureManager; + QT_END_NAMESPACE #endif // QGESTUREMANAGER_P_H