From 871e0c8de8f05fc307726db0a4dc1e9f663adeab Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 17 May 2017 16:02:53 -0400 Subject: [PATCH] ecore-wl2: add ecore_wl2_display_input_find_by_name() @feature --- src/lib/ecore_wl2/Ecore_Wl2.h | 9 +++++++++ src/lib/ecore_wl2/ecore_wl2_display.c | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index 8e0e39832e..3fdd59058a 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -530,6 +530,15 @@ EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display); */ EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id); +/** + * Find a seat for a given display object using the seat id + * @param display The display + * @param name The seat name + * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found + * @since 1.20 + */ +EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name); + /** * Find an Ecore_Wl2_Window based on id * diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index 61b15b33ad..999591b533 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -979,6 +979,18 @@ ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id) return NULL; } +EAPI Ecore_Wl2_Input * +ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name) +{ + Ecore_Wl2_Input *input; + + EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL); + EINA_SAFETY_ON_TRUE_RETURN_VAL(display->pid, NULL); + EINA_INLIST_FOREACH(display->inputs, input) + if (eina_streq(input->name, name)) return input; + return NULL; +} + EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display) {