From 63e74f695bd40fa86d15f55fdc3c1d855cfba147 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Thu, 25 Apr 2013 14:59:39 +0900 Subject: [PATCH] [focus] update child_can_focus on parent, when an widget becomes focusable --- legacy/elementary/src/lib/elm_widget.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/legacy/elementary/src/lib/elm_widget.c b/legacy/elementary/src/lib/elm_widget.c index 8e4a0f42d8..1eddb6dd70 100644 --- a/legacy/elementary/src/lib/elm_widget.c +++ b/legacy/elementary/src/lib/elm_widget.c @@ -1283,6 +1283,21 @@ _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_get(sdp->parent_obj, MY_CLASS); + } + } } else {