[PATCH libinput] touchpad: only pair tracksticks with touchpads where needed
Peter Hutterer
peter.hutterer at who-t.net
Sun May 31 17:20:18 PDT 2015
On Fri, May 29, 2015 at 09:38:12AM +0200, Hans de Goede wrote:
> Hi,
>
> On 29-05-15 05:16, Peter Hutterer wrote:
> >On topbuttonpads we need the trackstick pairing to generate the right software
> >buttons, on the X1 Carbon-like devices we need the pairing to route the
> >buttons correctly (though this code is obsolete with newer kernels).
> >
> >This fixes the touchpad being unresponsive while the trackpoint is in use.
>
> Erm, the touchpad not working while the trackpoint is active is a feature,
> and has nothing to do with the top button stuff. See tp_trackpoint_event()
>
> This was added to avoid false mouse moves generated by palms while using
> the trackpoint.
oh, right, now I remember, thanks. patch withdrawn.
> If some people dislike this we can make this configurable as another send-event
> bit which defaults to on. Removing it on all but touchpads with top buttons
> seems undesirable, if you want to do that it would be better to simple
> remove the tp_trackpoint_event() function.
>
> One could argue that the send-events bit for this should default to on only
> on touchpads with top softbuttons though.
I'll keep this in mind, but for now I think we should leave the behaviour
as-is. There are more pressing issues.
Cheers,
Peter
> >
> >https://bugs.freedesktop.org/show_bug.cgi?id=90731
> >
> >Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> >---
> > src/evdev-mt-touchpad.c | 8 +++++++-
> > 1 file changed, 7 insertions(+), 1 deletion(-)
> >
> >diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
> >index eacec6e..f8593a9 100644
> >--- a/src/evdev-mt-touchpad.c
> >+++ b/src/evdev-mt-touchpad.c
> >@@ -1060,11 +1060,17 @@ tp_interface_device_added(struct evdev_device *device,
> > unsigned int bus_tp = libevdev_get_id_bustype(device->evdev),
> > bus_trp = libevdev_get_id_bustype(added_device->evdev);
> > bool tp_is_internal, trp_is_internal;
> >+ bool want_trackpoint_pairing = false;
> >
> > tp_is_internal = bus_tp != BUS_USB && bus_tp != BUS_BLUETOOTH;
> > trp_is_internal = bus_trp != BUS_USB && bus_trp != BUS_BLUETOOTH;
> >
> >- if (tp->buttons.trackpoint == NULL &&
> >+ if (tp->buttons.has_topbuttons ||
> >+ device->tags & EVDEV_TAG_TOUCHPAD_TRACKPOINT)
> >+ want_trackpoint_pairing = true;
> >+
> >+ if (want_trackpoint_pairing &&
> >+ tp->buttons.trackpoint == NULL &&
> > (added_device->tags & EVDEV_TAG_TRACKPOINT) &&
> > tp_is_internal && trp_is_internal) {
> > /* Don't send any pending releases to the new trackpoint */
> >
More information about the wayland-devel
mailing list