summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-12-14 14:57:26 +1000
committerCarlos Garnacho <carlosg@gnome.org>2018-12-18 21:41:09 +0100
commite95e0458988821ce4d8915c243fa79398515ed27 (patch)
tree9fe6517405edf43521e18b65e3cae7fbe57bddb1
parent1b730dcf316ddb51d6a800e09f3e91df15c8d533 (diff)
downloadgtk+-e95e0458988821ce4d8915c243fa79398515ed27.tar.gz
x11: don't add unknown tools to our list
Generic tools (Bamboo, built-in tablets) always have the same serial number assigned by the wacom driver. This includes the touch tool when the wacom driver handles the touch evdev node (common where users require the wacom gestures to work). When the first device is the touch device, a tool is created with that serial. All future tools now return the touch tool on lookup since they all share the same serial number. Worse, this happens *across* devices, so the pen event node gets assigned the touch tool because they all have the same serial. Since we don't actually care about the touch as a tool, let's skip any unknown tool. This captures pads as well.
-rw-r--r--gdk/x11/gdkdevicemanager-xi2.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index 413918ec41..8c1cc41a70 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -1103,8 +1103,11 @@ handle_property_change (GdkX11DeviceManagerXI2 *device_manager,
GdkDeviceToolType tool_type;
tool_type = device_get_tool_type (device);
- tool = gdk_device_tool_new (serial_id, tool_id, tool_type, 0);
- gdk_seat_default_add_tool (GDK_SEAT_DEFAULT (seat), tool);
+ if (tool_type != GDK_DEVICE_TOOL_TYPE_UNKNOWN)
+ {
+ tool = gdk_device_tool_new (serial_id, tool_id, tool_type, 0);
+ gdk_seat_default_add_tool (GDK_SEAT_DEFAULT (seat), tool);
+ }
}
}