fileselector: Fix that the enter key does not navigate directory

Moved the navigation logic from callback of "clicked,double" to callback of "activated".
This commit is contained in:
Ryuan Choi 2014-01-10 08:24:22 +09:00
parent 3a3005ffc6
commit 34c5efeb36
1 changed files with 10 additions and 27 deletions

View File

@ -685,9 +685,9 @@ _populate_do(void *data)
}
static void
_on_item_double_clicked(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info)
_on_item_activated(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info)
{
//This event_info could be a list or gengrid item
Elm_Object_Item *it = event_info;
@ -698,13 +698,17 @@ _on_item_double_clicked(void *data,
ELM_FILESELECTOR_DATA_GET(data, sd);
if (!sd->double_tap_navigation) return;
path = elm_object_item_data_get(it);
if (!path) return;
is_dir = ecore_file_is_dir(path);
if (!is_dir) return;
if (!is_dir)
{
evas_object_smart_callback_call(data, SIG_ACTIVATED, (void *)path);
return;
}
if (!sd->double_tap_navigation) return;
sdata = malloc(sizeof(*sdata));
if (!sdata) return;
@ -720,25 +724,6 @@ _on_item_double_clicked(void *data,
sd->populate_idler = ecore_idler_add(_populate_do, sdata);
}
static void
_on_item_activated(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info)
{
//This event_info could be a list or gengrid item
Elm_Object_Item *it = event_info;
const char *path;
Eina_Bool is_dir;
path = elm_object_item_data_get(it);
if (!path) return;
is_dir = ecore_file_is_dir(path);
if (is_dir) return;
evas_object_smart_callback_call(data, SIG_ACTIVATED, (void *)path);
}
static void
_clear_selections(Elm_Fileselector_Smart_Data *sd, Elm_Object_Item *last_selected)
{
@ -1132,7 +1117,6 @@ _files_list_add(Evas_Object *obj)
evas_object_smart_callback_add(li, "selected", _on_item_selected, obj);
evas_object_smart_callback_add(li, "unselected", _on_item_unselected, obj);
evas_object_smart_callback_add(li, "clicked,double", _on_item_double_clicked, obj);
evas_object_smart_callback_add(li, "activated", _on_item_activated, obj);
evas_object_smart_callback_add
(li, "expand,request", _on_list_expand_req, obj);
@ -1165,7 +1149,6 @@ _files_grid_add(Evas_Object *obj)
evas_object_smart_callback_add(grid, "selected", _on_item_selected, obj);
evas_object_smart_callback_add(grid, "unselected", _on_item_unselected, obj);
evas_object_smart_callback_add(grid, "clicked,double", _on_item_double_clicked, obj);
evas_object_smart_callback_add(grid, "activated", _on_item_activated, obj);
elm_widget_sub_object_add(obj, grid);