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"
devs/devilhorns/drm_rotation
Mike Blumenkrantz 7 years ago
parent e31a3cc378
commit 19b87070f5
  1. 11
      src/bin/e_comp_object.c

@ -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…
Cancel
Save