summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qgesturemanager.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-10-30 14:43:51 +0100
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-11-17 14:38:15 +0100
commit2fb3941198f43b653cb53f53b59830c9b9856835 (patch)
treefe676d2ae1f339127fb339e9c6b267e8a5a7348c /src/widgets/kernel/qgesturemanager.cpp
parent954552ceac4a04bebc56d2f7f3464568ef671cb1 (diff)
QPanGestureRecognizer: Make the number of touch points a parameter.
Prepare for determining the suitable number of touch points from the device type. For now, 2 points are used as before, which can be overridden by setting the environment variable QT_PAN_TOUCHPOINTS. Add member variable to QPanGesturePrivate which is set on gesture creation and later used for comparison. Task-number: QTBUG-40461 Change-Id: I6d9e35ca752375bc6a54435482ca0925195b8142 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src/widgets/kernel/qgesturemanager.cpp')
-rw-r--r--src/widgets/kernel/qgesturemanager.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp
index 739e6b1870..c9af3062d3 100644
--- a/src/widgets/kernel/qgesturemanager.cpp
+++ b/src/widgets/kernel/qgesturemanager.cpp
@@ -63,6 +63,24 @@
QT_BEGIN_NAMESPACE
+static inline int panTouchPoints()
+{
+ // Override by environment variable for testing.
+ static const char panTouchPointVariable[] = "QT_PAN_TOUCHPOINTS";
+ if (qEnvironmentVariableIsSet(panTouchPointVariable)) {
+ bool ok;
+ const int result = qgetenv(panTouchPointVariable).toInt(&ok);
+ if (ok && result >= 1)
+ return result;
+ qWarning() << "Ignoring invalid value of " << panTouchPointVariable;
+ }
+ // Pan should use 1 finger on a touch screen and 2 fingers on touch pads etc.
+ // where 1 finger movements are used for mouse event synthetization. For now,
+ // default to 2 until all classes inheriting QScrollArea are fixed to handle it
+ // correctly.
+ return 2;
+}
+
QGestureManager::QGestureManager(QObject *parent)
: QObject(parent), state(NotGesture), m_lastCustomGestureId(Qt::CustomGesture)
{
@@ -73,7 +91,7 @@ QGestureManager::QGestureManager(QObject *parent)
registerGestureRecognizer(new QMacPinchGestureRecognizer);
registerGestureRecognizer(new QMacPanGestureRecognizer);
#else
- registerGestureRecognizer(new QPanGestureRecognizer);
+ registerGestureRecognizer(new QPanGestureRecognizer(panTouchPoints()));
registerGestureRecognizer(new QPinchGestureRecognizer);
registerGestureRecognizer(new QSwipeGestureRecognizer);
registerGestureRecognizer(new QTapGestureRecognizer);