From d24c00d2beab2216660277fba1e157bf7a4f9eab Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Fri, 13 Oct 2017 11:09:56 +0200 Subject: [PATCH] elm_toolbar: use prepare to get focus into the items again --- src/lib/elementary/elm_toolbar.c | 16 ++++++++++++---- src/lib/elementary/elm_toolbar.eo | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index de375c0e90..aa20cf5a40 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -653,8 +653,6 @@ _resize_job(void *data) eina_list_free(list); _mirrored_set(obj, efl_ui_mirrored_get(obj)); - - _item_focus_eval_all(obj, sd); } static void @@ -855,7 +853,7 @@ _elm_toolbar_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Toolbar_Item_Data *it if (!elm_object_focus_get(obj)) elm_object_focus_set(obj, EINA_TRUE); - if (!elm_widget_focus_get(obj)) + if (!elm_object_focus_get(obj)) return; if (eo_it != sd->focused_item) @@ -864,15 +862,18 @@ _elm_toolbar_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Toolbar_Item_Data *it _elm_toolbar_item_unfocused(sd->focused_item); _elm_toolbar_item_focused(eo_it); } + } else { - if (!elm_widget_focus_get(obj)) + if (!elm_object_focus_get(obj)) return; if (eo_it) _elm_toolbar_item_unfocused(eo_it); } + evas_object_focus_set(VIEW(it), focused); + _elm_widget_item_highlight_in_theme(obj, EO_OBJ(it)); _elm_widget_highlight_in_theme_update(obj); _elm_widget_focus_highlight_start(obj); @@ -4110,6 +4111,13 @@ elm_toolbar_icon_order_lookup_get(const Evas_Object *obj EINA_UNUSED) return ELM_ICON_LOOKUP_FDO_THEME; } +EOLIAN static void +_elm_toolbar_efl_ui_focus_object_prepare_logical(Eo *obj, Elm_Toolbar_Data *pd) +{ + _item_focus_eval_all(obj, pd); +} + + /* Standard widget overrides */ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_toolbar, Elm_Toolbar_Data) diff --git a/src/lib/elementary/elm_toolbar.eo b/src/lib/elementary/elm_toolbar.eo index 3720ada603..1ba5e8b36b 100644 --- a/src/lib/elementary/elm_toolbar.eo +++ b/src/lib/elementary/elm_toolbar.eo @@ -344,6 +344,7 @@ class Elm.Toolbar (Elm.Widget, Elm.Interface_Scrollable, Efl.Ui.Direction, Efl.Ui.Menu.first_item { get; } Efl.Ui.Menu.last_item { get; } Efl.Ui.Menu.items { get; } + Efl.Ui.Focus.Object.prepare_logical; } events { item,focused; [[Called when toolbar item got focus]]