From 19b87070f59bec871444460ccbdd0f5e20572aea Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 13 Jan 2016 16:46:48 -0500 Subject: [PATCH] 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" --- src/bin/e_comp_object.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 3f850c9b3..43fbe5048 100644 --- a/src/bin/e_comp_object.c +++ b/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;