EOLIAN static Eina_Bool
_elm_fileselector_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Fileselector_Data *sd EINA_UNUSED)
{
- return EINA_FALSE;
+ return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_elm_fileselector_elm_widget_focus_next(Eo *obj EINA_UNUSED, Elm_Fileselector_Data *sd, Elm_Focus_Direction dir, Evas_Object **next)
+{
+ Eina_List *items = NULL;
+
+ if (sd->up_button) items = eina_list_append(items, sd->up_button);
+ if (sd->home_button) items = eina_list_append(items, sd->home_button);
+ if (sd->files_view) items = eina_list_append(items, sd->files_view);
+ if (sd->path_entry) items = eina_list_append(items, sd->path_entry);
+ if (sd->name_entry) items = eina_list_append(items, sd->name_entry);
+ if (sd->cancel_button) items = eina_list_append(items, sd->cancel_button);
+ if (sd->ok_button) items = eina_list_append(items, sd->ok_button);
+
+ if (_elm_config->access_mode)
+ return elm_widget_focus_list_next_get(obj, items, eina_list_data_get, dir, next);
+
+ if (!elm_widget_focus_list_next_get(obj, items, eina_list_data_get, dir, next))
+ *next = (Evas_Object *)obj;
+
+ eina_list_free(items);
+
+ return EINA_TRUE;
}
EOLIAN static Eina_Bool
_elm_fileselector_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Fileselector_Data *sd EINA_UNUSED)
{
- return EINA_FALSE;
+ return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_elm_fileselector_elm_widget_focus_direction(Eo *obj EINA_UNUSED, Elm_Fileselector_Data *sd, const Evas_Object *base, double degree, Evas_Object **direction, double *weight)
+{
+ Eina_List *items = NULL;
+
+ if (sd->up_button) items = eina_list_append(items, sd->up_button);
+ if (sd->home_button) items = eina_list_append(items, sd->home_button);
+ if (sd->files_view) items = eina_list_append(items, sd->files_view);
+ if (sd->path_entry) items = eina_list_append(items, sd->path_entry);
+ if (sd->name_entry) items = eina_list_append(items, sd->name_entry);
+ if (sd->cancel_button) items = eina_list_append(items, sd->cancel_button);
+ if (sd->ok_button) items = eina_list_append(items, sd->ok_button);
+
+ elm_widget_focus_list_direction_get
+ (obj, base, items, eina_list_data_get, degree, direction, weight);
+
+ eina_list_free(items);
+
+ return EINA_TRUE;
}
EOLIAN static Eina_Bool