From: WooHyun Jung Date: Mon, 20 Jun 2011 01:09:32 +0000 (+0900) Subject: elm_widget : merge with 60470 for fixing focus bug X-Git-Tag: REL_F_I9200_20110624_1~5^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1c7f8461b3992adf5a343d9f66b340da005bc74a;p=framework%2Fuifw%2Felementary.git elm_widget : merge with 60470 for fixing focus bug --- diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 642ed7b..eeb0852 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -864,10 +864,6 @@ elm_widget_sub_object_del(Evas_Object *obj, } if (abort_on_warn == 1) abort(); } - if (!sd->child_can_focus) - { - if (_is_focusable(sobj)) sd->child_can_focus = 0; - } if (_elm_widget_is(sobj)) { Smart_Data *sd2 = evas_object_smart_data_get(sobj); @@ -882,6 +878,20 @@ elm_widget_sub_object_del(Evas_Object *obj, else sd->subobjs = eina_list_remove(sd->subobjs, sobj); if (elm_widget_focus_get(sobj)) _unfocus_parents(obj); + if ((sd->child_can_focus) && (_is_focusable(sobj))) + { + Evas_Object *subobj; + const Eina_List *l; + sd->child_can_focus = EINA_FALSE; + EINA_LIST_FOREACH(sd->subobjs, l, subobj) + { + if (_is_focusable(subobj)) + { + sd->child_can_focus = EINA_TRUE; + break; + } + } + } } else sd->subobjs = eina_list_remove(sd->subobjs, sobj);