[PATCH xf86-input-synaptics] Ignore pre-existing touches

Chase Douglas chase.douglas at canonical.com
Tue May 15 13:39:41 PDT 2012


On 05/14/2012 07:10 PM, Peter Hutterer wrote:
> On Mon, May 14, 2012 at 10:20:01AM -0700, Chase Douglas wrote:
>> If a touch is physically active when the device is enabled, then all
>> events for that touch must be ignored. In particular, we cannot close
>> the touch or we will decrement touch count counters below zero. If these
>> counters go below zero memory corruption can occur.
>>
>> Note that a device is disabled and enabled every time the user types on
>> the keyboard if synclient is used to disable the trackpad while typing.
>> This is a very common option.
>>
>> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
> 
> merged, but I don't think it's enough. the current behaviour when the device
> is disabled is pretty bad: if the device is enabled with a finger on the
> pad, it won't react to that finger, but if it was _disabled_ one finger on
> the pad and re-enabled with one finger it will jump to some position.

Single touch motion is not related to touch handling in any way, IIRC,
so this is likely a long-standing issue.

> plus, if I disable the device with two fingers on the pad and re-enable it
> with no fingers on the pad, I get the errors below whenever I release the
> second finger (no errors for the first finger).
> 
> [187400.101] [dix] SynPS/2 Synaptics TouchPad: unable to find touch point 0
> [187400.101] [dix] SynPS/2 Synaptics TouchPad: unable to find touch point 1
> 
> a simliar error comes in other cases but this one was the only one I've been
> able to narrow down.

I'm hoping that the patch I just sent to end touches in the server when
the device is disabled fixes this issue. I don't have a non-semi-mt
synaptics trackpad (or any other evdev MT protocol B devices), so I
can't verify.

-- Chase


More information about the xorg-devel mailing list