summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyuan Choi <ryuan.choi@gmail.com>2014-01-10 08:24:22 +0900
committerRyuan Choi <ryuan.choi@gmail.com>2014-01-13 17:34:36 +0900
commit3dd195f4b28a1d621c4d3bf90b8f5ef2e487c473 (patch)
tree00adfd0bbbe8e327b48745464faf26edee28d08a
parent2fdb1b33c1b8a516a6e53b706d519ef540dd3fb4 (diff)
downloadelementary-3dd195f4b28a1d621c4d3bf90b8f5ef2e487c473.tar.gz
fileselector: Fix that the enter key does not navigate directory
Moved the navigation logic from callback of "clicked,double" to callback of "activated".
-rw-r--r--src/lib/elc_fileselector.c37
1 files changed, 10 insertions, 27 deletions
diff --git a/src/lib/elc_fileselector.c b/src/lib/elc_fileselector.c
index fe40d50bf..cc7f60232 100644
--- a/src/lib/elc_fileselector.c
+++ b/src/lib/elc_fileselector.c
@@ -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;
@@ -721,25 +725,6 @@ _on_item_double_clicked(void *data,
}
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)
{
Eina_List *items;
@@ -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);