[RFC] Multi-Touch (MT) support - arbitration or not

Ping Cheng pinglinux at gmail.com
Thu Nov 11 10:23:55 PST 2010


On Wed, Nov 10, 2010 at 7:57 PM, Chris Bagwell <chris at cnpbagwell.com> wrote:
> On Tue, Nov 9, 2010 at 10:46 PM, Peter Hutterer
> <peter.hutterer at who-t.net> wrote:
>> On Mon, Nov 08, 2010 at 10:14:56PM -0600, Chris Bagwell wrote:
>>>
>>> I've copied #2 below and added my own text in "[]" to be sure and
>>> clarify text in context of case #2.
>>>
>>> 2.     Report first finger touch as ABS_X/Y events [on touch input
>>> device] when pen is not in
>>> prox.  Arbitrating single touch data [on touch input device] when pen
>>> is in prox. Pen data is
>>> reported as ABS_X/Y events [on pen input device]. Both ABS_X/Y for pen
>>> or the first finger
>>> and ABS_MT_* for MT data are reported [each MT send].  [MT are even
>>> sent on touch device even though only 1 in proximity tool possible so
>>> that client can combine both inputs' events and see same behaviour as
>>> if it was a single input device.]
>>
>> Assuming a split device - why do any filtering at all?
>> Report ABS_X/Y for pen on the pen device, touch as MT events on the touch
>> device _and_ first finger touch as ABS_X/Y on the touch device. If userspace
>> can somehow couple the two devices then it's easy enough to filter touch
>> events when necessary.
>
> Who is audience of these ABS_X/Y events?  We are not sending them for
> MT-aware application benefit.  Matter of fact, it slightly complicates
> MT-aware apps because they have to filter them in addition to
> filtering MT events.
>
> The real audience of ABS_X/Y is either older apps or "simple" apps
> (people that chose to keep it simple and not support MT events).  This
> class of apps can't really be expected to bind two devices logically
> and mask.  So without filtering ABS_X/Y on kernel side, we've
> basically made Bamboo drivers unusable with a range of apps; which
> probably means xf86-input-{evdev|synaptics} (I can't justify adding
> binding logic to those two).

I agree with Chris. Filtering touch ABS_X/Y when pen in prox is
necessary for non-MT aware apps. It also eases backward support.

Ping


More information about the xorg-devel mailing list