forked from enlightenment/enlightenment
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:
parent
e31a3cc378
commit
19b87070f5
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue