On Tue, 2013-04-16 at 10:35 +1000, Peter Hutterer wrote:
> On Mon, Mar 25, 2013 at 09:22:20AM +0100, Sjoerd Simons wrote:
> > Making libwacom recognize the touch
> > device as a wacom device solves this issue (As it makes gnome set the
> > wacom rotation for it)
>
> sorry, too simple a fix and too many wide-reaching consequences. we'll need
> something a lot narrower than this.
>
> http://sourceforge.net/mailarchive/forum.php?thread_name=CAGK%2BT_%3DiyfZKXCUJ4jFChy%2Bb0U3%3DGbfMMAJVY%2BQ2aVkiZnusMQ%40mail.gmail.com&forum_name=linuxwacom-devel
Looking as Bastiens example the problem is calling
libwacom_new_from_path with WFALLBACK_GENERIC, which always creates a
device if it doesn't know the model.. The same problem would occur with
tablets from a vendor that's not wacom. There just aren't that many of
those vs. non-wacom touchscreens :).
Attached is an updated version of the patch which prevents
false-positives by checking whether a touchscreen device uses the wacom
kernel driver (by checking the ID_USB_DRIVER property from udev)
--
Sjoerd Simons <sjo...@luon.net>
From ea0c25e80b817ede87fa2ad38017d05d69ea7c7a Mon Sep 17 00:00:00 2001
From: Sjoerd Simons <sjo...@greynoise.nl>
Date: Mon, 25 Mar 2013 09:08:53 +0100
Subject: [PATCH] Also recognize touchscreen wacom devices
On my X220t there are two wacom device exposed. One being the pen and
one being two finger touch. The touch device has ID_INPUT_TOUCHSCREEN
instead of _TABLET or _TOUCHPAD, so also recognize that.
To prevent false-negatives only recognize touchscreen that use the wacom
usb driver
Signed-off-by: Sjoerd Simons <sjo...@greynoise.nl>
---
libwacom/libwacom.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libwacom/libwacom.c b/libwacom/libwacom.c
index 1b9b398..b4afe56 100644
--- a/libwacom/libwacom.c
+++ b/libwacom/libwacom.c
@@ -56,6 +56,10 @@ libwacom_get_device(const WacomDeviceDatabase *db, const char *match)
static gboolean
is_tablet_or_touchpad (GUdevDevice *device)
{
+ if (g_udev_device_get_property_as_boolean (device, "ID_INPUT_TOUCHSCREEN"))
+ return !g_strcmp0 ("wacom", g_udev_device_get_property (device,
+ "ID_USB_DRIVER"));
+
return g_udev_device_get_property_as_boolean (device, "ID_INPUT_TABLET") ||
g_udev_device_get_property_as_boolean (device, "ID_INPUT_TOUCHPAD");
}
--
1.7.10.4
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel