elm_toolbar: use prepare to get focus into the items again
authorMarcel Hollerbach <marcel@osg.samsung.com>
Fri, 13 Oct 2017 09:09:56 +0000 (11:09 +0200)
committerMarcel Hollerbach <marcel@osg.samsung.com>
Fri, 13 Oct 2017 10:31:48 +0000 (12:31 +0200)
src/lib/elementary/elm_toolbar.c
src/lib/elementary/elm_toolbar.eo

index de375c0..aa20cf5 100644 (file)
@@ -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)
index 3720ada..1ba5e8b 100644 (file)
@@ -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]]