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