diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2014-12-01 16:00:13 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-12-03 09:09:42 +1000 |
commit | 56b5f846ac7f8243da4ba2f288654becf1014c46 (patch) | |
tree | 24e8bab9ba16260562f87cf46cfbd4f4e87f3814 | |
parent | 8b7ef91c1a190fcd8363b0e128520f8d24de4bde (diff) | |
download | libinput-56b5f846ac7f8243da4ba2f288654becf1014c46.tar.gz |
Add libinput_device_get_context/libinput_seat_get_context
Allow retrieval of the libinput context from the seat and the device.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | src/libinput.c | 12 | ||||
-rw-r--r-- | src/libinput.h | 22 | ||||
-rw-r--r-- | test/device.c | 12 |
3 files changed, 46 insertions, 0 deletions
diff --git a/src/libinput.c b/src/libinput.c index 96b255a9..0d380fa8 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -651,6 +651,12 @@ libinput_seat_get_user_data(struct libinput_seat *seat) return seat->user_data; } +LIBINPUT_EXPORT struct libinput * +libinput_seat_get_context(struct libinput_seat *seat) +{ + return seat->libinput; +} + LIBINPUT_EXPORT const char * libinput_seat_get_physical_name(struct libinput_seat *seat) { @@ -1177,6 +1183,12 @@ libinput_device_get_user_data(struct libinput_device *device) return device->user_data; } +LIBINPUT_EXPORT struct libinput * +libinput_device_get_context(struct libinput_device *device) +{ + return libinput_seat_get_context(device->seat); +} + LIBINPUT_EXPORT const char * libinput_device_get_sysname(struct libinput_device *device) { diff --git a/src/libinput.h b/src/libinput.h index d567df44..db56da7f 100644 --- a/src/libinput.h +++ b/src/libinput.h @@ -1202,6 +1202,17 @@ libinput_seat_get_user_data(struct libinput_seat *seat); /** * @ingroup seat * + * Get the libinput context from the seat. + * + * @param seat A previously obtained seat + * @return The libinput context for this seat. + */ +struct libinput * +libinput_seat_get_context(struct libinput_seat *seat); + +/** + * @ingroup seat + * * Return the physical name of the seat. For libinput contexts created from * udev, this is always the same value as passed into * libinput_udev_assign_seat() and all seats from that context will have @@ -1291,6 +1302,17 @@ libinput_device_get_user_data(struct libinput_device *device); /** * @ingroup device * + * Get the libinput context from the device. + * + * @param device A previously obtained device + * @return The libinput context for this device. + */ +struct libinput * +libinput_device_get_context(struct libinput_device *device); + +/** + * @ingroup device + * * Get the system name of the device. * * To get the descriptive device name, use libinput_device_get_name(). diff --git a/test/device.c b/test/device.c index 84984f4c..28cdb06c 100644 --- a/test/device.c +++ b/test/device.c @@ -629,6 +629,17 @@ START_TEST(device_get_udev_handle) } END_TEST +START_TEST(device_context) +{ + struct litest_device *dev = litest_current_device(); + struct libinput_seat *seat; + + ck_assert(dev->libinput == libinput_device_get_context(dev->libinput_device)); + seat = libinput_device_get_seat(dev->libinput_device); + ck_assert(dev->libinput == libinput_seat_get_context(seat)); +} +END_TEST + int main (int argc, char **argv) { litest_add("device:sendevents", device_sendevents_config, LITEST_ANY, LITEST_TOUCHPAD); @@ -650,6 +661,7 @@ int main (int argc, char **argv) litest_add("device:sendevents", device_disable_release_softbutton, LITEST_CLICKPAD, LITEST_APPLE_CLICKPAD); litest_add("device:sendevents", device_disable_topsoftbutton, LITEST_TOPBUTTONPAD, LITEST_ANY); litest_add("device:id", device_ids, LITEST_ANY, LITEST_ANY); + litest_add_for_device("device:context", device_context, LITEST_SYNAPTICS_CLICKPAD); litest_add("device:udev", device_get_udev_handle, LITEST_ANY, LITEST_ANY); |