diff options
author | Ryuan Choi <ryuan.choi@gmail.com> | 2014-01-10 08:24:22 +0900 |
---|---|---|
committer | Ryuan Choi <ryuan.choi@gmail.com> | 2014-01-13 17:34:36 +0900 |
commit | 3dd195f4b28a1d621c4d3bf90b8f5ef2e487c473 (patch) | |
tree | 00adfd0bbbe8e327b48745464faf26edee28d08a | |
parent | 2fdb1b33c1b8a516a6e53b706d519ef540dd3fb4 (diff) | |
download | elementary-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.c | 37 |
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); |