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
This commit is contained in:
Carlos Garnacho 2014-04-25 19:58:43 +02:00
parent 91ee1ceca4
commit 8857b19d49
2 changed files with 27 additions and 0 deletions

View File

@ -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

View File

@ -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;
}