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
This commit is contained in:
Derek Foreman 2018-05-08 12:26:36 -05:00
parent be7f692ea5
commit ad5db090ab
2 changed files with 28 additions and 0 deletions

View File

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

View File

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