lkml.org 
[lkml]   [2010]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] Add BTN_TOOL_BUTTONS to input.h
From
On Tue, Nov 23, 2010 at 4:38 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Tue, Nov 23, 2010 at 04:12:13PM -0800, Ping Cheng wrote:
>> On Tue, Nov 23, 2010 at 2:24 PM, Dmitry Torokhov
>> <dmitry.torokhov@gmail.com> wrote:
>> >
>> >> > The BTN_TOOL_* were introduced to indicate to the userspace tool that is
>> >> > currently touching the surface of the device. Buttons are expected to be
>> >> > always present and can change their state regardless of what tool is
>> >> > being used at the moment. I.e. The full hardware state (between
>> >> > EV_SYN/SYN_REPORT) could be, for example,
>> >> >
>> >> > Pen at 10,20, BTN_0, and BTN_2 (ABS_X 10, ABS_Y 20, BTN_TOOL_PEN, BTN_0,
>> >> > BTN_2) or
>> >> >
>> >> > Lens at 20,15 and BTN_1 (ABS_X 20, ABS_Y 15, BTN_TOOL_LENS, BTN_1).
>> >> >
>> >> > As you can see BTN_* events can accompany either BTN_TOOL_LENS or
>> >> > BTN_TOOL_PEN or any other BTN_TOOL_*.
>> >>
>> >> You are right. The tablet buttons can go with one of those other
>> >> BTN_TOOL_s _if_ they do not define the same event types (BTN_s) as the
>> >> tablet buttons.
>> >>
>> >> The new Bamboo MT code sends both BTN_LEFT and BTN_RIGHT events for
>> >> Tablet Buttons (refer to line 905 and 908 of wacom_wac.c). However,
>> >> BTN_LEFT and BTN_RIGHT are also sent by BTN_TOOL_MOUSE/LENS tool
>> >> (refer to wacom_wac.c line 622 to 665).
>> >>
>> >> If we remove BTN_TOOL_FINGER without a BTN_TOOL-something to replace
>> >> it, the two LEFT and RIGHT buttons will have a hard time to tell the
>> >> user land if they are from the MOUSE/LENS or the Tablet Buttons. The
>> >> worst case could be the LEFT/RIGHT sent later overwrites the earlier
>> >> ones.
>> >>
>> >> We could do some guesswork in the user land to figure out which
>> >> LEFT/RIGHT belongs to which BTN_TOOL_ if the above scenario does not
>> >> happen. But, it would be much cheaper and more reliable if we can tell
>> >> the user land where those LEFT and RIGHT come from. This is the whole
>> >> purpose of the kernel driver, isn't it?
>> >
>> > What would userspace want to figure what physical button was pressed?
>> > Input events convey _actions_, i.e. BTN_LEFT means that user pressed
>> > primary button on the device. It does not matter if it was pressed on
>> > tablet or the mouse/lens; the response should be the same.
>>
>> You're right, if the user wants a LEFT click. In a lot of cases, they
>> want to translate it into something else. LEFT is only a default value
>> that we give them if they do nothing.
>>
>> > If you expect different response, depending on which physical button is
>> > pressed, then they should emit different BTN_* events. If you are
>> > concerned that some users might want to have the same actions while
>> > others want different actions - then please implement key remapping in
>> > the driver.
>>
>> That is exactly what I am trying to convince you. Without being able
>> to tell one button event from the other, even just logically, how can
>> I and other clients remap them?
>
> EVIOCSKEYCODE. You just need to wire wacom driver to support this ioctl.
>
>>
>> > If you want to treat touch and pen as completely independent devices -
>> > we can do that too but as you remember there are some issues with
>> > "pairing" of the devices.
>>
>> No, this issue has nothing to do with separating pen and touch
>> devices. This is for BUTTONS only. Those button events can come from
>> the physical tools (pen, mouse, lens, etc.) or the tablet itself.
>> Without knowing that the button events are from the ones that
>> physically sit on the tablet, it may mess up with the buttons that are
>> from the physical tools.
>>
>> You might have mixed my BTN_TOOL_TOUCH request with this patch.
>
> No, I have not. Again, if actions are different then physical buttons
> should emit different events. If actions are the same then events are
> the same and it does not matter whether user pushed button on the
> touchpad or the mouse.

All right. I'll submit a patch to close this request. The
BTN_TOOL_TOUCH request is still open though.

Thank you,

Ping


\
 
 \ /
  Last update: 2010-11-24 01:53    [W:0.041 / U:3.252 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site