On Mon, Nov 8, 2010 at 3:44 PM, Ping Cheng <pingli...@gmail.com> wrote: > On Mon, Nov 8, 2010 at 7:31 AM, Chris Bagwell <ch...@cnpbagwell.com> wrote: >> On Sun, Nov 7, 2010 at 4:44 PM, Ping Cheng <pingli...@gmail.com> wrote: >>> On Sun, Nov 7, 2010 at 9:50 AM, Chris Bagwell <ch...@cnpbagwell.com> wrote: >>>> Please do not submit this 1 patch. #2 is OK to submit still. >>>> >>>> I had forgot that tablet PC's/touchscreens only send BTN_TOUCH without >>>> a BTN_TOOL_FINGER. So we should continue behaviour as treating >>>> BTN_TOUCH ~= BTN_TOOL_FINGER. >>> >>> I see your point. But I don't feel we want to treat BTN_TOUCH ~= >>> BTN_TOOL_FINGER. That is a bit confusion in our context - pen can send >>> BTN_TOUCH too. >>> >>> I would say we check for the existence of BTN_TOOL_DOUBLETAP. If it >>> does, the device is not PROTOCOL_GENERIC. Hence, TOOL_FINGER is >>> consider as PAD. As I mentioned before, we need to keep the >>> DOUBLETAP/TRIPLETAP and TOOL_FINGER?PAD code as is since we have to >>> support backward compability (otherwise, I lose my job ;). >>> >>> It is very ugly, I agree. But, we can not do much about it. >>> >>> What do you think? >>> >>> Ping >>> >> >> I'll add something like above but I think the logic is slightly different. >> >> The code handles all the generic tablet and Wacom Protocol 4/5 cases >> just fine today. The issue is limited to working with "generic >> touchpads" and "generic touchscreens" I think. The later are the >> only ones that do not send BTN_TOOL_FINGER as best I know. So I'll >> add something similar to evdev's EVDEV_TOUCHPAD and EVDEV_TOUCHSCREEN. >> >> Since this is same concept as knowing when to set relative vs. >> absolute mode, the flag WCM_LCD probably already has correct meaning. >> >> Roughly: >> >> case BTN_TOOL_FINGER: >> if (common->wcmProtocol != WCM_PROTOCOL_GENERIC) >> /* this is PAD device on Wacom device. Setup as PAD. */ >> else >> /* This is a generic touchpad in relative mode. Setup like >> DOUBLETAP on a Wacom. We will ignore any accompanying BTN_TOUCH for >> setup phase. */ >> break; >> >> case BTN_TOUCH: >> if (common->wcmProtocol == WCM_PROTOCOL_GENERIC && >> TabletHasFeature(common, WCM_LCD) >> /* This is a generic touchscreen in absolute mode. Setup like >> DOUBLETAP on a Wacom. */ >> else >> /* This is touch sent with protocol 4/5 devices or with tochpads. >> Ignore during setup because it was setup with BTN_TOOL_* event. */ >> break; > > Good. Thank you for the clarification. I would like to see more people > test the new changes on different models. > > TabletHasFeature(common, WCM_LCD) means the tablet is a display > tablet, which can be a Tablet PC (embedded) or Cintiq/PL tablet > (standalone). If absolute mode is what you are looking for, you get > what you need. > > Ping >
BTW, I did want to point out again that all should work just fine with todays git and all previously supported HW... but definitely a good idea to have some testers prove that state. The above changes are only needed if/when we switch Wacom Tablet PC over to MT events or if someone wants to redirect something new like ntrig's touch input device over to xf86-input-wacom (its pen input already works with xf86-input-wacom). So above changes are just forward looking. Chris ------------------------------------------------------------------------------ The Next 800 Companies to Lead America's Growth: New Video Whitepaper David G. Thomson, author of the best-selling book "Blueprint to a Billion" shares his insights and actions to help propel your business during the next growth cycle. Listen Now! http://p.sf.net/sfu/SAP-dev2dev _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel