Hi,

On 14-04-15 23:58, Peter Hutterer wrote:
Internal touchpads with trackpoints are either BUS_I8042 or BUS_I2C, but not
BUS_USB/BUS_BLUETOOTH. Lenovo sells external keyboards with a trackpoint
built-in, make sure we don't pair that trackpoint with the internal
touchpad. And likewise, an internal trackpoint should not be paired with
an external USB touchpad device (the current code pairs the trackpoint with
any Wacom touch device in addition to the normal touchpad pairing).

Lenovo had one external device that has a trackpoint and a touchpad on an
external keyboard. That device won't be covered with this patch, if we have a
user we can re-consider.

https://bugs.freedesktop.org/show_bug.cgi?id=89935

Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

Looks good:

Reviewed-by: Hans de Goede <hdego...@redhat.com>

Regards,

Hans

---
  src/evdev-mt-touchpad.c | 9 ++++++++-
  1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index a663db9..aa59869 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -825,9 +825,16 @@ tp_device_added(struct evdev_device *device,
                struct evdev_device *added_device)
  {
        struct tp_dispatch *tp = (struct tp_dispatch*)device->dispatch;
+       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;
+
+       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 &&
-           (added_device->tags & EVDEV_TAG_TRACKPOINT)) {
+           (added_device->tags & EVDEV_TAG_TRACKPOINT) &&
+           tp_is_internal && trp_is_internal) {
                /* Don't send any pending releases to the new trackpoint */
                tp->buttons.active_is_topbutton = false;
                tp->buttons.trackpoint = added_device;

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to