BTN_TOOL_FINGER indicates single touch/first finger if MT is enabled
Signed-off-by: Ping Cheng <[email protected]>
Reviewed-by: Jason Gerecke <[email protected]>
---
src/wcmUSB.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index ef19b51..1f1db35 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1441,13 +1441,15 @@ static void usbParseBTNEvent(WacomCommonPtr common,
* Translates a tool code from the kernel (e.g. BTN_TOOL_PEN) into the
* corresponding device type for the driver (e.g. STYLUS_ID).
*
+ * @param[in] common
* @param[in] type Linux input tool type (e.g. EV_KEY)
* @param[in] code Linux input tool code (e.g. BTN_STYLUS_PEN)
- * @param[in] protocol Wacom protocol type (e.g. WCM_PROTOCOL_GENERIC)
* @return Wacom device ID (e.g. STYLUS_ID) or 0 if no match.
*/
-static int toolTypeToDeviceType(int type, int code, int protocol)
+static int toolTypeToDeviceType(WacomCommonPtr common, int type, int code)
{
+ wcmUSBData* private = common->private;
+
if (type == EV_KEY) {
switch(code) {
case BTN_TOOL_PEN:
@@ -1457,7 +1459,8 @@ static int toolTypeToDeviceType(int type, int code, int
protocol)
return STYLUS_ID;
case BTN_TOOL_FINGER:
- if (protocol != WCM_PROTOCOL_GENERIC)
+ if ((common->wcmProtocolLevel !=
WCM_PROTOCOL_GENERIC)
+ && !private->wcmUseMT)
return PAD_ID;
else
return TOUCH_ID;
@@ -1499,7 +1502,7 @@ static int refreshDeviceType(WacomCommonPtr common)
for (i = 0; i < KEY_MAX; i++)
{
if (ISBITSET(keys, i))
- device_type = toolTypeToDeviceType(EV_KEY, i,
common->wcmProtocolLevel);
+ device_type = toolTypeToDeviceType(common, EV_KEY, i);
if (device_type)
return device_type;
}
@@ -1529,7 +1532,7 @@ static int usbInitToolType(WacomCommonPtr common, const
struct input_event *even
for (i = 0; (i < nevents) && !device_type; ++i, event_ptr++)
{
- device_type = toolTypeToDeviceType(event_ptr->type,
event_ptr->code, common->wcmProtocolLevel);
+ device_type = toolTypeToDeviceType(common, event_ptr->type,
event_ptr->code);
}
if (!device_type)
--
1.7.10.4
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel