From: WooHyun Jung Date: Tue, 7 May 2013 11:41:32 +0000 (+0900) Subject: elementary/elm_widget : Fixed wrong logic when setting parent's child_can_focus as... X-Git-Tag: submit/efl/20131021.015827~560 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3654d6e28137cfaf72444d5c5e26b651fabac89e;p=platform%2Fupstream%2Felementary.git elementary/elm_widget : Fixed wrong logic when setting parent's child_can_focus as EINA_TRUE. --- diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 89f41c4..c941497 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -1279,6 +1279,18 @@ _elm_widget_can_focus_set(Eo *obj, void *_pd, va_list *list) sd->can_focus = can_focus; if (sd->can_focus) { + /* update child_can_focus of parents */ + Evas_Object *o = obj; + + for (;;) + { + o = elm_widget_parent_get(o); + if (!o) break; + sd = eo_data_scope_get(o, MY_CLASS); + if (!sd || sd->child_can_focus) break; + sd->child_can_focus = EINA_TRUE; + } + evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _propagate_event, (void *)(long)EVAS_CALLBACK_KEY_DOWN); @@ -1288,21 +1300,6 @@ _elm_widget_can_focus_set(Eo *obj, void *_pd, va_list *list) evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_WHEEL, _propagate_event, (void *)(long)EVAS_CALLBACK_MOUSE_WHEEL); - - /* update child focusable-ness on parents, now that a - * focusable child got in */ - Elm_Widget_Smart_Data *sdp = sd; - if (!sdp->child_can_focus) - { - sdp->child_can_focus = EINA_TRUE; - while (sdp->parent_obj) - { - if (sdp->child_can_focus) break; - - sdp->child_can_focus = EINA_TRUE; - sdp = eo_data_scope_get(sdp->parent_obj, MY_CLASS); - } - } } else {