diff --git a/legacy/elementary/src/lib/elc_anchorblock.c b/legacy/elementary/src/lib/elc_anchorblock.c index b5c6cc8c96..c4626b53a3 100644 --- a/legacy/elementary/src/lib/elc_anchorblock.c +++ b/legacy/elementary/src/lib/elc_anchorblock.c @@ -20,6 +20,9 @@ static void _parent_del(void *data, Evas *e, Evas_Object *obj, void *event_info) static void _del_pre_hook(Evas_Object *obj) { + Widget_Data *wd = elm_widget_data_get(obj); + evas_object_event_callback_del(wd->entry, EVAS_CALLBACK_CHANGED_SIZE_HINTS, + _changed_size_hints); elm_anchorblock_hover_end(obj); elm_anchorblock_hover_parent_set(obj, NULL); } diff --git a/legacy/elementary/src/lib/elc_hoversel.c b/legacy/elementary/src/lib/elc_hoversel.c index 11c7c7f683..83225bc205 100644 --- a/legacy/elementary/src/lib/elc_hoversel.c +++ b/legacy/elementary/src/lib/elc_hoversel.c @@ -71,9 +71,9 @@ _item_clicked(void *data, Evas_Object *obj, void *event_info) { Item *it = data; Evas_Object *obj2 = it->obj; + elm_hoversel_hover_end(obj2); if (it->func) it->func(it->data, obj2, NULL); evas_object_smart_callback_call(obj2, "selected", NULL); - elm_hoversel_hover_end(obj2); } static void diff --git a/legacy/elementary/src/lib/elm_bubble.c b/legacy/elementary/src/lib/elm_bubble.c index 6477dd0157..c186171423 100644 --- a/legacy/elementary/src/lib/elm_bubble.c +++ b/legacy/elementary/src/lib/elm_bubble.c @@ -69,7 +69,7 @@ _sub_del(void *data, Evas_Object *obj, void *event_info) wd->content = NULL; _sizing_eval(obj); } - if (sub == wd->icon) + else if (sub == wd->icon) { evas_object_event_callback_del (sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints); @@ -137,8 +137,8 @@ elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) edje_object_part_swallow(wd->bbl, "elm.swallow.content", content); evas_object_event_callback_add(content, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj); - _sizing_eval(obj); } + _sizing_eval(obj); } EAPI void @@ -154,8 +154,8 @@ elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon) edje_object_part_swallow(wd->bbl, "elm.swallow.icon", icon); evas_object_event_callback_add(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj); - _sizing_eval(obj); } + _sizing_eval(obj); } EAPI void diff --git a/legacy/elementary/src/lib/elm_widget.c b/legacy/elementary/src/lib/elm_widget.c index 913fb4de65..aefae12a2c 100644 --- a/legacy/elementary/src/lib/elm_widget.c +++ b/legacy/elementary/src/lib/elm_widget.c @@ -58,14 +58,13 @@ _sub_obj_del(void *data, Evas *e, Evas_Object *obj, void *event_info) if (obj == sd->resize_obj) { sd->resize_obj = NULL; - evas_object_smart_callback_call(sd->obj, "sub-object-del", obj); } else if (obj == sd->hover_obj) sd->hover_obj = NULL; else { sd->subobjs = eina_list_remove(sd->subobjs, obj); - evas_object_smart_callback_call(sd->obj, "sub-object-del", obj); } + evas_object_smart_callback_call(sd->obj, "sub-object-del", obj); } static void @@ -640,12 +639,14 @@ _smart_del(Evas_Object *obj) { evas_object_event_callback_del(sd->resize_obj, EVAS_CALLBACK_DEL, _sub_obj_del); sd->resize_obj = NULL; + evas_object_smart_callback_call(sd->obj, "sub-object-del", sd->resize_obj); evas_object_del(sd->resize_obj); } if (sd->hover_obj) { evas_object_event_callback_del(sd->hover_obj, EVAS_CALLBACK_DEL, _sub_obj_del); sd->hover_obj = NULL; + evas_object_smart_callback_call(sd->obj, "sub-object-del", sd->hover_obj); evas_object_del(sd->hover_obj); } while (sd->subobjs) @@ -653,6 +654,7 @@ _smart_del(Evas_Object *obj) sobj = sd->subobjs->data; sd->subobjs = eina_list_remove_list(sd->subobjs, sd->subobjs); evas_object_event_callback_del(sobj, EVAS_CALLBACK_DEL, _sub_obj_del); + evas_object_smart_callback_call(sd->obj, "sub-object-del", sobj); evas_object_del(sobj); } if (sd->del_func) sd->del_func(obj);