diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 691281ab9f..c7e01dcbfc 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -874,3 +874,7 @@ 2013-01-03 Thiep Ha * Fix list separator size bug. + +2013-01-03 Jaehwan Kim + + * Fix the bug which the callbacks of the sub-object are added even if the sub-object is added the parent object. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index c018d8ee6c..5ea0fcd6bf 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -109,6 +109,7 @@ Fixes: * Tooltips now correctly set NETWM tooltip window type * Fix the naviframe item part text to be set properly. * Fix list separator size bug. + * Fix the bug which the callbacks of the sub-object are added even if the sub-object is added the parent object. Removals: diff --git a/legacy/elementary/src/lib/elm_flip.c b/legacy/elementary/src/lib/elm_flip.c index 95cdb6e467..0c99293ffb 100644 --- a/legacy/elementary/src/lib/elm_flip.c +++ b/legacy/elementary/src/lib/elm_flip.c @@ -144,6 +144,9 @@ _elm_flip_smart_sub_object_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list) Eina_Bool int_ret; if (ret) *ret = EINA_FALSE; + if (evas_object_data_get(sobj, "elm-parent") == obj) + goto end; + eo_do_super(obj, elm_wdg_sub_object_add(sobj, &int_ret)); if (!int_ret) return; @@ -152,6 +155,7 @@ _elm_flip_smart_sub_object_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list) evas_object_event_callback_add (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints_cb, obj); +end: if (ret) *ret = EINA_TRUE; } diff --git a/legacy/elementary/src/lib/elm_hover.c b/legacy/elementary/src/lib/elm_hover.c index 20a03b8f16..48bc42449f 100644 --- a/legacy/elementary/src/lib/elm_hover.c +++ b/legacy/elementary/src/lib/elm_hover.c @@ -331,6 +331,9 @@ _elm_hover_smart_sub_object_add(Eo *obj, void *_pd, va_list *list) Eina_Bool int_ret; Elm_Hover_Smart_Data *sd = _pd; + if (evas_object_data_get(sobj, "elm-parent") == obj) + goto end; + eo_do_super(obj, elm_wdg_sub_object_add(sobj, &int_ret)); if (!int_ret) return; @@ -338,6 +341,7 @@ _elm_hover_smart_sub_object_add(Eo *obj, void *_pd, va_list *list) evas_object_event_callback_add (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_smt_sub_changed, obj); +end: if (ret) *ret = EINA_TRUE; } diff --git a/legacy/elementary/src/lib/elm_layout.c b/legacy/elementary/src/lib/elm_layout.c index 65653a1011..6abb9656e1 100644 --- a/legacy/elementary/src/lib/elm_layout.c +++ b/legacy/elementary/src/lib/elm_layout.c @@ -418,9 +418,11 @@ _elm_layout_smart_sub_object_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list) Evas_Object *sobj = va_arg(*list, Evas_Object *); Eina_Bool *ret = va_arg(*list, Eina_Bool *); if (ret) *ret = EINA_FALSE; - Eina_Bool int_ret = EINA_FALSE; + if (evas_object_data_get(sobj, "elm-parent") == obj) + goto end; + eo_do_super(obj, elm_wdg_sub_object_add(sobj, &int_ret)); if (!int_ret) return; @@ -432,6 +434,7 @@ _elm_layout_smart_sub_object_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list) (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_sub_object_size_hint_change, obj); +end: if (ret) *ret = EINA_TRUE; }