summaryrefslogtreecommitdiff
path: root/gdk/wayland
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2016-08-04 18:59:09 +0200
committerCarlos Garnacho <carlosg@gnome.org>2016-08-23 21:01:44 +0200
commit3ac56e60c7eb44843b8b3fa0119e1746f271d923 (patch)
tree407ce2fa7bd77530f378bd3233751f10a8092cba /gdk/wayland
parent942d144d3b893177a5c2b3ab4a8cbb209f710c68 (diff)
downloadgtk+-3ac56e60c7eb44843b8b3fa0119e1746f271d923.tar.gz
wayland: Add wayland-specific method to retrieve a device node path
This will be useful at least for g-c-c, in order to match libwacom data with GdkDevices. https://bugzilla.gnome.org/show_bug.cgi?id=770026
Diffstat (limited to 'gdk/wayland')
-rw-r--r--gdk/wayland/gdkdevice-wayland.c32
-rw-r--r--gdk/wayland/gdkwaylanddevice.h2
2 files changed, 34 insertions, 0 deletions
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index 315ebdc39a..1bdd924eb3 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -4478,3 +4478,35 @@ gdk_wayland_device_get_drop_context (GdkDevice *device)
return GDK_WAYLAND_SEAT (seat)->drop_context;
}
+
+/**
+ * gdk_wayland_device_get_node_path:
+ * @device: a #GdkDevice
+ *
+ * Returns the /dev/input/event* path of this device.
+ * For #GdkDevices that possibly coalesce multiple hardware
+ * devices (eg. mouse, keyboard, touch,...), this function
+ * will return %NULL.
+ *
+ * This is most notably implemented for devices of type
+ * %GDK_SOURCE_PEN and %GDK_SOURCE_ERASER.
+ *
+ * Returns: the /dev/input/event* path of this device
+ **/
+const gchar *
+gdk_wayland_device_get_node_path (GdkDevice *device)
+{
+ GdkWaylandTabletData *tablet;
+
+ GdkSeat *seat;
+
+ g_return_val_if_fail (GDK_IS_DEVICE (device), NULL);
+
+ seat = gdk_device_get_seat (device);
+ tablet = gdk_wayland_device_manager_find_tablet (GDK_WAYLAND_SEAT (seat),
+ device);
+ if (tablet)
+ return tablet->path;
+
+ return NULL;
+}
diff --git a/gdk/wayland/gdkwaylanddevice.h b/gdk/wayland/gdkwaylanddevice.h
index a5b8ea00f1..b02ceeb8e8 100644
--- a/gdk/wayland/gdkwaylanddevice.h
+++ b/gdk/wayland/gdkwaylanddevice.h
@@ -55,6 +55,8 @@ struct wl_keyboard *gdk_wayland_device_get_wl_keyboard (GdkDevice *device);
GDK_AVAILABLE_IN_3_20
struct wl_seat *gdk_wayland_seat_get_wl_seat (GdkSeat *seat);
+GDK_AVAILABLE_IN_3_22
+const gchar *gdk_wayland_device_get_node_path (GdkDevice *device);
G_END_DECLS