derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ad5db090ab3ae156cc8d974aa0b366e5374c79be
commit ad5db090ab3ae156cc8d974aa0b366e5374c79be Author: Derek Foreman <der...@osg.samsung.com> Date: Tue May 8 12:26:36 2018 -0500 edje: Add beta api for seat_data_get Summary: Currently this is only to help wayland CSD function correctly, so the opaque pointer is very poorly defined. Depends on D6116 Reviewers: zmike, cedric Reviewed By: zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6117 --- src/lib/edje/Edje_Common.h | 18 ++++++++++++++++++ src/lib/edje/edje_program.c | 10 ++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/lib/edje/Edje_Common.h b/src/lib/edje/Edje_Common.h index b86ed7e851..60ec169708 100644 --- a/src/lib/edje/Edje_Common.h +++ b/src/lib/edje/Edje_Common.h @@ -2110,6 +2110,24 @@ EAPI const char *edje_object_part_object_name_get(const Evas_Object *obj); */ EAPI Eina_Bool edje_3d_object_add(Evas_Object *obj, Eo **root_node, Eo *scene); +/** + * @brief Gets seat data passed to callbacks. + * + * @return The seat data for that callback. + * + * When a callback is initiated by an input event from a seat, we try to + * provide seat information with it. + * + * Signals fired as programmed responses to these signals will also try + * to carry the seat data along. + * + * This returns an opaque pointer to the seat data. + * + * @see edje_object_signal_callback_add() for more on Edje signals. + * @since 1.21 + */ +EAPI void *edje_object_signal_callback_seat_data_get(void); + #endif /** diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c index fe75adb647..0db9f6226a 100644 --- a/src/lib/edje/edje_program.c +++ b/src/lib/edje/edje_program.c @@ -1593,6 +1593,7 @@ break_prog: /* Extra data for callbacks */ static void *callback_extra_data = NULL; +static void *callback_seat_data = NULL; EAPI void * edje_object_signal_callback_extra_data_get(void) @@ -1600,6 +1601,14 @@ edje_object_signal_callback_extra_data_get(void) return callback_extra_data; } +#ifdef EFL_BETA_API_SUPPORT +EAPI void * +edje_object_signal_callback_seat_data_get(void) +{ + return callback_seat_data; +} +#endif + /* FIXME: what if we delete the evas object??? */ static void _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Data *data, Eina_Bool prop) @@ -1625,6 +1634,7 @@ _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Da EINA_REFCOUNT_REF(m); callback_extra_data = (data) ? data->data : NULL; + callback_seat_data = (data) ? data->seat_data : NULL; if (eina_inarray_count(&ssp->u.callbacks.globing)) r = edje_match_callback_exec(ssp, --