[PATCH libinput] touchpad: implement edge-based basic palm detection

Hans de Goede hdegoede at redhat.com
Fri Jul 11 02:25:45 PDT 2014


Hi,

On 07/11/2014 11:04 AM, Hans de Goede wrote:
> Hi,
> 
> On 07/11/2014 08:34 AM, Daniel Martin wrote:
>> On Fri, Jul 11, 2014 at 11:08:53AM +1000, Peter Hutterer wrote:
>>> A large part of palm events are situated on the far edges of the touchpad. In
>>> a test run on a T440s while typing a long email all but 2 touch points were
>>> located in the outer ~5% of the touchpad. Define a 10% exclusion zone on the
>>> left and right edges in which new touchpoint is automatically assigned to be a
>>> palm.
>>>
>>> A finger may move into that exclusion zone without being marked as palm, it
>>> just can't start in one.
>>>
>>> On clickpads, the exclusion zone does not extend into the software buttons.
>>>
>>> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
>>> ---
>>
>> I don't have the big picture (of libinput) atm. Does this stand in the
>> way of edge-scolling (in the future)?
> 
> I've adding edge-scrolling on my to-do list (after a bunch of other
> higher prio items). I agree with Peter that it is best to just move
> forward with this, and to figure out how this interacts with edge-scrolling
> when we implement edge-scrolling.
> 
> The patch looks good to me and is:
> 
> Reviewed-by: Hans de Goede <hdegoede at redhat.com>

Thinking more about this, I withdraw my reviewed-by.

This patch as it stands will break any pointer-moves starting at the edge
of the touchpad. Which esp. with smaller touchpads is likely to happen
when the user wants to move from one side of the screen to the other.

So 2 things:

1) The once a palm always a palm bits needs to be replaced with keeping a
start position and if a touch moves past a certain threshold from its
start position, no longer consider it a palm (and call tp_set_pointer, as
the touch may now become the pointer if don't have one already).

2) We should probably only do this whole 5% thing on larger^W wide touchpads,
where the palms resting on the left / right edges is thus likely. For touchpads
where the kernel does not provide resolution info, and thus we don't know the
size we should simply not do this.

This also answers my p.s. should we also do this for xf86-input-synaptics, no
we should not, lets just focus on getting libinput ready as a full replacement.

Regards,

Hans


More information about the wayland-devel mailing list