On Mon, Nov 29, 2010 at 12:41:59PM -0800, Ping Cheng wrote: > As discussed at linux-input, BTN_TOOL_FINGER should be used to > report single touch events. Update tool type and event process > accordingly. > > Signed-off-by: Ping Cheng <[email protected]> > --- > src/wcmUSB.c | 32 ++++++++++++-------------------- > src/wcmValidateDevice.c | 18 +++++++++++++----- > 2 files changed, 25 insertions(+), 25 deletions(-) > > diff --git a/src/wcmUSB.c b/src/wcmUSB.c > index efd4319..30c57a3 100644 > --- a/src/wcmUSB.c > +++ b/src/wcmUSB.c > @@ -935,30 +935,22 @@ static int usbParseKeyEvent(WacomCommonPtr common, > ds->proximity = (event->value != 0); > break; > > - case BTN_TOOL_FINGER: > - /* If a real finger report, ignore. */ > - if (common->wcmProtocolLevel == WCM_PROTOCOL_GENERIC) > - break; > - > - DBG(6, common, > - "USB Pad detected %x (value=%d)\n", > - event->code, event->value); > - ds->device_type = PAD_ID; > - ds->device_id = PAD_DEVICE_ID; > - ds->proximity = (event->value != 0); > + case BTN_TOUCH: > + /* actual events are processed by BTN_TOOL_* events */ > break; > > - case BTN_TOUCH: > - /* Treat BTN_TOUCH same as BTN_TOOL_DOUBLETAP > - * for touchpads. > - * TODO: Tablets that do not use wacom style > - * multiplexing over a single input device > - * also can report BTN_TOUCH same as > - * BTN_TOOL_PEN would be used. We should > - * allow for that case as well. > - */ > + case BTN_TOOL_FINGER: > + /* A pad tool */ > if (common->wcmProtocolLevel != WCM_PROTOCOL_GENERIC) > + { > + DBG(6, common, > + "USB Pad detected %x (value=%d)\n", > + event->code, event->value); > + ds->device_type = PAD_ID; > + ds->device_id = PAD_DEVICE_ID; > + ds->proximity = (event->value != 0); > break; > + } > > /* fall through */ > case BTN_TOOL_DOUBLETAP: > diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c > index b2ec79e..fd424dc 100644 > --- a/src/wcmValidateDevice.c > +++ b/src/wcmValidateDevice.c > @@ -123,11 +123,11 @@ static struct > __u16 tool[3]; /* tool array is terminated by 0 */ > } wcmType [] = > { > - { "stylus", { BTN_TOOL_PEN, 0 } }, > - { "eraser", { BTN_TOOL_RUBBER, 0 } }, > - { "cursor", { BTN_TOOL_MOUSE, 0 } }, > - { "touch", { BTN_TOOL_DOUBLETAP, 0 } }, > - { "pad", { BTN_FORWARD, BTN_0, 0 } } > + { "stylus", { BTN_TOOL_PEN, 0 } }, > + { "eraser", { BTN_TOOL_RUBBER, 0 } }, > + { "cursor", { BTN_TOOL_MOUSE, 0 } }, > + { "touch", { BTN_TOOL_DOUBLETAP, BTN_TOOL_FINGER, 0 } }, > + { "pad", { BTN_FORWARD, BTN_0, 0 } } > }; > > /* validate tool type for device/product */ > @@ -151,6 +151,14 @@ Bool wcmIsAValidType(InputInfoPtr pInfo, const char* > type) > if (ISBITSET (common->wcmKeys, > wcmType[j].tool[k])) > { > ret = TRUE; > + > + /* non GENERIC devices use > BTN_TOOL_FINGER for pad */ > + if (common->wcmProtocolLevel != > WCM_PROTOCOL_GENERIC) > + { > + if (!strcmp(type, "touch") && > + wcmType[j].tool[k] == > BTN_TOOL_FINGER) > + ret = FALSE; > + } > } > else if (!strlen(dsource)) /* an user defined > type */ > { > -- > 1.7.2.3
merged, thanks. Cheers, Peter ------------------------------------------------------------------------------ What happens now with your Lotus Notes apps - do you make another costly upgrade, or settle for being marooned without product support? Time to move off Lotus Notes and onto the cloud with Force.com, apps are easier to build, use, and manage than apps on traditional platforms. Sign up for the Lotus Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
