add sandbox gadget event to indicate gadget removal

ref T6443
This commit is contained in:
Mike Blumenkrantz 2018-01-05 12:25:00 -05:00
parent 81891eeb8e
commit 6549353b53
3 changed files with 13 additions and 0 deletions

View File

@ -59,11 +59,21 @@ _gadget_gravity(void *data, struct e_gadget *e_gadget EINA_UNUSED, uint32_t grav
win_emit(data, "gadget_site_gravity", gravity);
}
static void
_gadget_removed(void *data, struct e_gadget *e_gadget EINA_UNUSED)
{
Evas_Object *win;
win = eina_list_data_get(eina_hash_find(wins, &data));
evas_object_smart_callback_call(win, "gadget_removed", NULL);
}
static const struct e_gadget_listener _gadget_listener =
{
_gadget_anchor,
_gadget_orient,
_gadget_gravity,
_gadget_removed,
};
static void

View File

@ -349,6 +349,8 @@ runner_removed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
Instance *inst = data;
if (inst->box != event_info) return;
if (inst->ci->sandbox && inst->gadget_resource)
e_gadget_send_gadget_removed(inst->gadget_resource);
rconfig->items = eina_list_remove(rconfig->items, inst->ci);
eina_stringshare_del(inst->ci->cmd);
E_FREE(inst->ci);

View File

@ -30,6 +30,7 @@
<event name="gadget_gravity">
<arg name="gravity" type="uint" enum="gravity"/>
</event>
<event name="gadget_removed"/>
<request name="open_uri">
<arg name="uri" type="string"/>
</request>