From b12682270aebc110c9518bddae7a8aecc070cad7 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Fri, 3 Jun 2011 17:06:16 -0700 Subject: Use pointer mode instead of spots for SEMI_MT touch pads. The spot-based presentation relies on being able to accurately locate and distinguish two or more fingers on the touch pad. We can still do gesture recognition without distinct multitouch but it doesn't make sense to show spots because we can't be sure that the spots will appear in the right places. Change-Id: Ia282d77000bf3b50d395273a1f0ac0bbe55b3c6f --- services/input/InputReader.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'services/input/InputReader.cpp') diff --git a/services/input/InputReader.cpp b/services/input/InputReader.cpp index 2924d3edd54e..c42e3abcd4f3 100644 --- a/services/input/InputReader.cpp +++ b/services/input/InputReader.cpp @@ -1987,9 +1987,11 @@ void TouchInputMapper::configureParameters() { mParameters.useAveragingTouchFilter = mConfig->filterTouchEvents; mParameters.useJumpyTouchFilter = mConfig->filterJumpyTouchEvents; - // TODO: select the default gesture mode based on whether the device supports - // distinct multitouch - mParameters.gestureMode = Parameters::GESTURE_MODE_SPOTS; + // Use the pointer presentation mode for devices that do not support distinct + // multitouch. The spot-based presentation relies on being able to accurately + // locate two or more fingers on the touch pad. + mParameters.gestureMode = getEventHub()->hasInputProperty(getDeviceId(), INPUT_PROP_SEMI_MT) + ? Parameters::GESTURE_MODE_POINTER : Parameters::GESTURE_MODE_SPOTS; String8 gestureModeString; if (getDevice()->getConfiguration().tryGetProperty(String8("touch.gestureMode"), -- cgit v1.2.3-59-g8ed1b