Re: [PATCH 7/7] elantech: average the two coordinates when 2 fingers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Op 30-07-10 23:01, Henrik Rydberg schreef:
> On 07/30/2010 08:55 PM, Éric Piel wrote:
:
>>> I am concerned what happens when you put one finger first and then add
>>> another one. Would not that couse the cursor to jump?
> 
> 
> I agree, I have seen this behavior before and it is not quite what you want. The
> average point does jump.
> 
>>> I'd say we need to obey MT protocol and continue reporting the first
>>> contact in non-MT protocol and rely on MT-aware drivers to do better job
>>> of contact tracking. This is also consistent with how other drivers,
>>> such as bcm5974, report coordinates.
>> If the MT protocol says we should always report on the single-touch side
>> the first contact, then I guess it's better to do so. However, I've just
>> read the latest version of the mt-protocol document, and couldn't see
>> anything saying that. Are you sure this is the official behavior? I'd
>> tend to think that single-touch and multi-touch are never read together,
>> so they can be different.
> 
> 
> It is true that there are no specific section on how to handle the ABS_X/Y
> events, and different drivers have slightly different strategies. However,
> common to them all is that a single finger is consistently used to report the
> events.
Maybe it would be useful to add a paragraph to the mt-protocol document
about the relation with the single-touch events.

Well as an anecdote, on my old laptop with a single-touch synaptics
hardware, when I press 2 fingers, the average point is reported. That's
all in hardware, though so it probably doesn't count as a typical driver
behaviour ;-)

>> More specifically, on this hardware, when there are two fingers, we get
>> only the lower coordinates and the higher coordinates, but we don't know
>> exactly where are the fingers. As there is no tracking, the lower
>> coordinate might be the second finger applied, so even if we report just
>> the lower coordinates, there is 75% chance that the cursor will jump.
> 
> 
> Perhaps it is better to not report ABS_X/Y at all in the case of two fingers on
> this trackpad. With any reasonable userspace driver, the ABS_X/Y will be masked
> out anyways.
What do you mean? ABS_X/Y is still very useful, for example for gesture,
or to manage horizontal/vertical scrolling. In the xorg synaptics
driver, it's not used to move the cursor position, but it's definitely
not masked out!

>> That's actually the reason I prefer the average: it gives a 100%
>> expectable behavior (because the average is always correct). In
>> practice, when using the xorg synaptics driver, with the default
>> 2-fingers-scrolling mode, the cursor never jumps because as soon as the
>> second finger is applied, X and Y are not used to move the cursor.
> 
> 
> It is predictable, but it is still bad behavior. ;-)
:
I'm completely against not reporting the position with 2 fingers,
because definitely, users would lose some features. With 3 and 4
fingers, we report the lower coordinates (the only ones provided by the
hardware). So it'd be extremely weird not to report any for 2 fingers!

As a user, I enjoy better when the average is reported, because
whichever finger I move, I get a feedback, there is never a finger
"hidden" behind the other one. Nevertheless, if consistency matters,
let's just leave it as is.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux