discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=af60915713068ef3bdb42f9de8f94a791f2be78d
commit af60915713068ef3bdb42f9de8f94a791f2be78d Author: Mike Blumenkrantz <[email protected]> Date: Fri Jun 30 17:02:44 2017 -0400 add function for a gadget to remove itself --- src/bin/e_gadget.c | 11 +++++++++++ src/bin/e_gadget.h | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 8a1106d05..39f39a801 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -1635,6 +1635,17 @@ e_gadget_type_iterator_get(void) return gadget_types ? eina_hash_iterator_key_new(gadget_types) : NULL; } +E_API void +e_gadget_del(Evas_Object *g) +{ + E_Gadget_Config *zgc; + EINA_SAFETY_ON_NULL_RETURN(g); + zgc = evas_object_data_get(g, "__e_gadget"); + EINA_SAFETY_ON_NULL_RETURN(zgc); + _gadget_remove(zgc); + e_config_save_queue(); +} + static void _gadget_drop_handler_moveresize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) { diff --git a/src/bin/e_gadget.h b/src/bin/e_gadget.h index 36f2d9cd6..00f862208 100644 --- a/src/bin/e_gadget.h +++ b/src/bin/e_gadget.h @@ -142,7 +142,8 @@ E_API Eina_Stringshare *e_gadget_type_get(Evas_Object *g); E_API void e_gadget_type_add(const char *type, E_Gadget_Create_Cb callback, E_Gadget_Wizard_Cb wizard); E_API void e_gadget_type_del(const char *type); E_API Eina_Iterator *e_gadget_type_iterator_get(void); - +/* delete a gadget and its config */ +E_API void e_gadget_del(Evas_Object *g); /* drop region initially matches gadget size, resizes to match returned object's size * handler is removed when returned object is deleted */ --
