[PATCH libinput 10/11] touchpad: don't enable edge palm detection on Wacom touchpads

Peter Hutterer peter.hutterer at who-t.net
Mon May 25 15:52:57 PDT 2015


Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/evdev-mt-touchpad.c | 10 ++++++++--
 test/touchpad.c         |  6 +++++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index 994effe..db330ec 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -1372,6 +1372,7 @@ tp_init_palmdetect(struct tp_dispatch *tp,
 		   struct evdev_device *device)
 {
 	int width, height;
+	unsigned int vendor_id;
 
 	tp->palm.right_edge = INT_MAX;
 	tp->palm.left_edge = INT_MIN;
@@ -1382,8 +1383,13 @@ tp_init_palmdetect(struct tp_dispatch *tp,
 	height = abs(device->abs.absinfo_y->maximum -
 		    device->abs.absinfo_y->minimum);
 
-	/* Apple touchpads are always big enough to warrant palm detection */
-	if (evdev_device_get_id_vendor(device) != VENDOR_ID_APPLE) {
+	vendor_id = evdev_device_get_id_vendor(device);
+
+	/* Wacom doesn't have internal touchpads,
+	 * Apple touchpads are always big enough to warrant palm detection */
+	if (vendor_id == VENDOR_ID_WACOM) {
+		return 0;
+	} else if (vendor_id != VENDOR_ID_APPLE) {
 		/* We don't know how big the touchpad is */
 		if (device->abs.absinfo_x->resolution == 1)
 			return 0;
diff --git a/test/touchpad.c b/test/touchpad.c
index f8ee6e1..fc77439 100644
--- a/test/touchpad.c
+++ b/test/touchpad.c
@@ -3198,9 +3198,13 @@ static int
 touchpad_has_palm_detect_size(struct litest_device *dev)
 {
 	double width, height;
+	unsigned int vendor;
 	int rc;
 
-	if (libinput_device_get_id_vendor(dev->libinput_device) == ID_VENDOR_APPLE)
+	vendor = libinput_device_get_id_vendor(dev->libinput_device);
+	if (vendor == VENDOR_ID_WACOM)
+		return 0;
+	if (vendor == VENDOR_ID_APPLE)
 		return 1;
 
 	rc = libinput_device_get_size(dev->libinput_device, &width, &height);
-- 
2.4.1



More information about the wayland-devel mailing list