[PATCH xf86-input-synaptics 00/12] Clickpad support
Daniel Stone
daniel at fooishbar.org
Sat Feb 11 08:32:10 PST 2012
Hi,
On 11 February 2012 15:42, Chase Douglas <chase.douglas at canonical.com> wrote:
> On 02/11/2012 11:51 AM, Daniel Stone wrote:
>> On 11 February 2012 01:25, Chase Douglas <chase.douglas at canonical.com> wrote:
>>> This means we also can't emit touch events while moving the cursor. I
>>> added a patch that ensures the cursor is only ever moved when one touch
>>> is on the device so we can emit touch events when two touches are on the
>>> device.
>>
>> The click case in particular is a difficult one to solve correctly. I
>> guess you ultimately don't want to crush any movement which is a
>> direct continuation of what came previously, but only new movement.
>> You do need to stop at least some movement though, since otherwise it
>> becomes near-impossible to click something accurately, as your finger
>> will invariably wiggle a bit while doing the physical click.
>
> I believe you are getting at a different issue. I will admit that I
> don't attempt to solve the issue of pointer motion while trying to click
> on a button pad in this patch series. It's a problem that should be
> addressed, I'm just not sure how yet.
>
> What Bryce was saying is when you go from one touch on the touchpad to
> two, but before the button is pressed, the cursor freezes. As soon as
> the button is pressed, the cursor unfreezes so you can click and drag
> with two fingers. On irc, Bryce told me that he tends to leave one
> finger on the buttonpad, move the pointer with another, and press the
> button when he's got the cursor in the right location. That's not
> possible anymore because we inhibit pointer motion when more than one
> touch is on the touchpad.
Right - separate but all related - we hit this too during our clickpad
work. When the second finger lands, it could be for a scroll, for a
click, or for some other gesture. So perhaps one approach could be to
not change state until we've definitively established what's going on
- so if you've got pointer motion on going and a second finger lands,
continue tracking the same finger for pointer motion until you've
worked out whether it's a scroll, or a click, or a pure touch gesture.
We did this to some extent with the scroll stuff, to make sure we
were avoiding unwanted pointer motion when doing two-finger scrolling.
Some of this stuff gets pretty worrying though; people expect to be
able to do two-finger scrolling with one finger, so distinguishing
between that case, and the case with one finger down for clicks and
another for motion, becomes basically impossible.
Cheers,
Daniel
More information about the xorg-devel
mailing list