do full cleanup when overriding existing comp autoclose object

failing to trigger delete on existing autoclose object would result
in the object never closing and being "leaked"
This commit is contained in:
Mike Blumenkrantz 2016-01-13 16:46:48 -05:00
parent e31a3cc378
commit 19b87070f5
1 changed files with 1 additions and 10 deletions

View File

@ -4206,16 +4206,7 @@ e_comp_object_util_autoclose(Evas_Object *obj, E_Comp_Object_Autoclose_Cb del_cb
{
if (e_comp->autoclose.obj == obj) return;
evas_object_event_callback_del_full(e_comp->autoclose.obj, EVAS_CALLBACK_DEL, _e_comp_object_autoclose_del, e_comp);
e_comp->autoclose.obj = obj;
e_comp->autoclose.del_cb = del_cb;
e_comp->autoclose.key_cb = cb;
e_comp->autoclose.data = (void*)data;
if (evas_object_visible_get(obj))
_e_comp_object_autoclose_setup(obj);
else
evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _e_comp_object_autoclose_show, e_comp);
evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _e_comp_object_autoclose_del, e_comp);
return;
_e_comp_object_autoclose_cleanup(0);
}
e_comp->autoclose.obj = obj;
e_comp->autoclose.del_cb = del_cb;