summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2014-04-25 19:58:43 +0200
committerCarlos Garnacho <carlosg@gnome.org>2014-05-21 14:09:22 +0200
commit8857b19d4926a153cb2317951dc5cba6c04f79f5 (patch)
treec4734aeaa530b940ad1f2c70364bf5b4461bf617
parent91ee1ceca452176667708ad898cd59196712a76d (diff)
downloadclutter-8857b19d4926a153cb2317951dc5cba6c04f79f5.tar.gz
evdev: Add function to get the libinput_device from a ClutterInputDevice
This may be useful for deeper libinput integration that's not in the scope of Clutter. https://bugzilla.gnome.org/show_bug.cgi?id=728967
-rw-r--r--clutter/evdev/clutter-evdev.h3
-rw-r--r--clutter/evdev/clutter-input-device-evdev.c24
2 files changed, 27 insertions, 0 deletions
diff --git a/clutter/evdev/clutter-evdev.h b/clutter/evdev/clutter-evdev.h
index f85127fdd..8b49ab91f 100644
--- a/clutter/evdev/clutter-evdev.h
+++ b/clutter/evdev/clutter-evdev.h
@@ -28,6 +28,7 @@
#include <glib-object.h>
#include <xkbcommon/xkbcommon.h>
#include <clutter/clutter.h>
+#include <libinput.h>
G_BEGIN_DECLS
@@ -112,6 +113,8 @@ void clutter_evdev_add_filter (ClutterEvdevFilterFunc func,
CLUTTER_AVAILABLE_IN_1_20
void clutter_evdev_remove_filter (ClutterEvdevFilterFunc func,
gpointer data);
+CLUTTER_AVAILABLE_IN_1_20
+struct libinput_device * clutter_evdev_input_device_get_libinput_device (ClutterInputDevice *device);
G_END_DECLS
diff --git a/clutter/evdev/clutter-input-device-evdev.c b/clutter/evdev/clutter-input-device-evdev.c
index 61e27eea7..f7ac657ef 100644
--- a/clutter/evdev/clutter-input-device-evdev.c
+++ b/clutter/evdev/clutter-input-device-evdev.c
@@ -29,6 +29,7 @@
#include "clutter/clutter-device-manager-private.h"
#include "clutter-private.h"
+#include "clutter-evdev.h"
#include "clutter-input-device-evdev.h"
@@ -198,3 +199,26 @@ _clutter_input_device_evdev_determine_type (struct libinput_device *ldev)
else
return CLUTTER_EXTENSION_DEVICE;
}
+
+/**
+ * clutter_evdev_input_device_get_libinput_device:
+ * @device: a #ClutterInputDevice
+ *
+ * Retrieves the libinput_device struct held in @device.
+ *
+ * Returns: The libinput_device struct
+ *
+ * Since: 1.20
+ * Stability: unstable
+ **/
+struct libinput_device *
+clutter_evdev_input_device_get_libinput_device (ClutterInputDevice *device)
+{
+ ClutterInputDeviceEvdev *device_evdev;
+
+ g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE_EVDEV (device), NULL);
+
+ device_evdev = CLUTTER_INPUT_DEVICE_EVDEV (device);
+
+ return device_evdev->libinput_device;
+}