fileselector: Fix that the enter key does not navigate directory
authorRyuan Choi <ryuan.choi@gmail.com>
Thu, 9 Jan 2014 23:24:22 +0000 (08:24 +0900)
committerRyuan Choi <ryuan.choi@gmail.com>
Mon, 13 Jan 2014 08:34:36 +0000 (17:34 +0900)
Moved the navigation logic from callback of "clicked,double" to callback of "activated".

src/lib/elc_fileselector.c

index fe40d50bf17e33a43164aa1a71803407f8de7dc0..cc7f6023206dfecdc4456fd3c85dc48c72bf7780 100644 (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);