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 bd89873d65
commit d3e4caa57d
1 changed files with 13 additions and 10 deletions

View File

@ -275,6 +275,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)
{
@ -282,7 +291,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
@ -777,15 +789,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)
{