if gadget wizard returns a zero id, remove gadget from site and destroy

This commit is contained in:
Mike Blumenkrantz 2017-06-23 17:41:39 -04:00
parent 4c58940291
commit 446860b68a
1 changed files with 13 additions and 10 deletions

View File

@ -324,6 +324,15 @@ _gadget_object_free(E_Object *eobj)
if (zgc->id == -1) _gadget_free(zgc);
}
static void
_gadget_remove(E_Gadget_Config *zgc)
{
evas_object_smart_callback_call(zgc->site->layout, "gadget_removed", zgc->gadget);
zgc->site->gadget_list = eina_inlist_remove(zgc->site->gadget_list, EINA_INLIST_GET(zgc));
zgc->site->gadgets = eina_list_remove(zgc->site->gadgets, zgc);
_gadget_free(zgc);
}
static void
_gadget_wizard_end(void *data, int id)
{
@ -331,7 +340,10 @@ _gadget_wizard_end(void *data, int id)
zgc->id = id;
evas_object_smart_callback_call(zgc->site->layout, "gadget_site_unlocked", NULL);
_gadget_object_finalize(zgc);
if (id)
_gadget_object_finalize(zgc);
else
_gadget_remove(zgc);
}
static Eina_Bool
@ -854,15 +866,6 @@ _gadget_act_configure(E_Object *obj, const char *params EINA_UNUSED, E_Binding_E
return EINA_TRUE;
}
static void
_gadget_remove(E_Gadget_Config *zgc)
{
evas_object_smart_callback_call(zgc->site->layout, "gadget_removed", zgc->gadget);
zgc->site->gadget_list = eina_inlist_remove(zgc->site->gadget_list, EINA_INLIST_GET(zgc));
zgc->site->gadgets = eina_list_remove(zgc->site->gadgets, zgc);
_gadget_free(zgc);
}
static void
_gadget_menu_remove(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED)
{