Hi,

the attached patch fixes the single-click feature of e_fm, so you can use
single-click on folders, not just on files.
It also removes the strdup in the affected functions that seems useless
here.

Would be nice if someone could check/review and commit it.

Greetings,

thomasg
Index: e_fm.c
===================================================================
--- e_fm.c      (Revision 37249)
+++ e_fm.c      (Arbeitskopie)
@@ -5136,18 +5136,17 @@
      {
        /* if its a directory && open dirs in-place is set then change the dir
         * to be the dir + file */
-       if ((S_ISDIR(ic->info.statinfo.st_mode)) && 
+       if (
+           (S_ISDIR(ic->info.statinfo.st_mode)) && 
            (ic->sd->config->view.open_dirs_in_place) &&
            (!ic->sd->config->view.no_subdir_jump) &&
            (!ic->sd->config->view.single_click)
            )
          {
-            char buf[4096], *dev = NULL;
+            char buf[4096];
             
-            if (ic->sd->dev) dev = strdup(ic->sd->dev);
             snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
-            e_fm2_path_set(ic->sd->obj, dev, buf);
-            E_FREE(dev);
+            e_fm2_path_set(ic->sd->obj, ic->sd->dev, buf);
          }
        else
          evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
@@ -5170,7 +5169,7 @@
             ic->drag.dnd = 0;
             ic->drag.src = 1;
          }
-       _e_fm2_mouse_1_handler(ic, 0, ev->modifiers);
+         _e_fm2_mouse_1_handler(ic, 0, ev->modifiers);
      }
    else if (ev->button == 3)
      {
@@ -5195,6 +5194,24 @@
         ic->drag.start = 0;
        ic->drag.dnd = 0;
        ic->drag.src = 0;
+
+        if (
+           (S_ISDIR(ic->info.statinfo.st_mode)) &&
+            (ic->sd->config->view.open_dirs_in_place) &&
+            (!ic->sd->config->view.no_subdir_jump) &&
+            (ic->sd->config->view.single_click)
+            )
+          {
+             char buf[4096];
+
+             snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
+             e_fm2_path_set(ic->sd->obj, ic->sd->dev, buf);
+          }
+        else if ((S_ISDIR(ic->info.statinfo.st_mode)) && 
(ic->sd->config->view.single_click))
+          evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
+
+
+
      }
    ic->down_sel = 0;
 }
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to