Hello, All.
Patch to ticket #273.
Now, when "open dirs in place" is active and user haven't permission to
open dir, efm2 fallback to parent directory. Also other events (for ex.
delete)
on dirs opened in efm will cause go to it's parents in efm windows.
e_fm.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
Index: e/src/bin/e_fm.c
===================================================================
--- e/src/bin/e_fm.c (revision 40672)
+++ e/src/bin/e_fm.c (working copy)
@@ -818,6 +818,29 @@
}
}
+void
+_e_fm2_path_parent_set(Evas_Object *obj, const char *path)
+{
+ char buf[PATH_MAX], *p;
+ int idx;
+
+ p = strrchr(path, '/');
+ if (!p || (p == path))
+ e_fm2_path_set(obj, "/", "/");
+ else
+ {
+ idx = p - path;
+ if (idx < PATH_MAX)
+ {
+ strncpy(buf, path, idx);
+ buf[idx] = '\0';
+ e_fm2_path_set(obj, "/", buf);
+ }
+ else
+ e_fm2_path_set(obj, "/", "/");
+ }
+}
+
EAPI void
e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
{
@@ -2827,12 +2850,17 @@
while (dels)
{
Evas_Object *obj;
+ E_Fm2_Smart_Data *sd;
obj = dels->data;
+ sd = evas_object_smart_data_get(obj);
dels = eina_list_remove_list(dels, dels);
if ((_e_fm2_list_walking > 0) &&
(eina_list_data_find(_e_fm2_list_remove, obj))) continue;
- evas_object_smart_callback_call(obj, "dir_deleted", NULL);
+ if (sd->config->view.open_dirs_in_place)
+ _e_fm2_path_parent_set(obj, sd->realpath);
+ else
+ evas_object_smart_callback_call(obj, "dir_deleted", NULL);
}
_e_fm2_list_walking--;
if (_e_fm2_list_walking == 0)
Sincerely yours, Sergey.
--
Jabber/XMPP: [email protected]
Cellular: +7-909-206-5992
Index: e/src/bin/e_fm.c
===================================================================
--- e/src/bin/e_fm.c (revision 40672)
+++ e/src/bin/e_fm.c (working copy)
@@ -818,6 +818,29 @@
}
}
+void
+_e_fm2_path_parent_set(Evas_Object *obj, const char *path)
+{
+ char buf[PATH_MAX], *p;
+ int idx;
+
+ p = strrchr(path, '/');
+ if (!p || (p == path))
+ e_fm2_path_set(obj, "/", "/");
+ else
+ {
+ idx = p - path;
+ if (idx < PATH_MAX)
+ {
+ strncpy(buf, path, idx);
+ buf[idx] = '\0';
+ e_fm2_path_set(obj, "/", buf);
+ }
+ else
+ e_fm2_path_set(obj, "/", "/");
+ }
+}
+
EAPI void
e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
{
@@ -2827,12 +2850,17 @@
while (dels)
{
Evas_Object *obj;
+ E_Fm2_Smart_Data *sd;
obj = dels->data;
+ sd = evas_object_smart_data_get(obj);
dels = eina_list_remove_list(dels, dels);
if ((_e_fm2_list_walking > 0) &&
(eina_list_data_find(_e_fm2_list_remove, obj))) continue;
- evas_object_smart_callback_call(obj, "dir_deleted", NULL);
+ if (sd->config->view.open_dirs_in_place)
+ _e_fm2_path_parent_set(obj, sd->realpath);
+ else
+ evas_object_smart_callback_call(obj, "dir_deleted", NULL);
}
_e_fm2_list_walking--;
if (_e_fm2_list_walking == 0)
Patch to ticket #273.
Now, when "open dirs in place" is active and user haven't permission to
open dir, efm2 fallback to parent directory. Also other events (for ex. delete)
on dirs opened in efm will cause go to it's parents in efm windows.
e_fm.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
Index: e/src/bin/e_fm.c
===================================================================
--- e/src/bin/e_fm.c (revision 40672)
+++ e/src/bin/e_fm.c (working copy)
@@ -818,6 +818,29 @@
}
}
+void
+_e_fm2_path_parent_set(Evas_Object *obj, const char *path)
+{
+ char buf[PATH_MAX], *p;
+ int idx;
+
+ p = strrchr(path, '/');
+ if (!p || (p == path))
+ e_fm2_path_set(obj, "/", "/");
+ else
+ {
+ idx = p - path;
+ if (idx < PATH_MAX)
+ {
+ strncpy(buf, path, idx);
+ buf[idx] = '\0';
+ e_fm2_path_set(obj, "/", buf);
+ }
+ else
+ e_fm2_path_set(obj, "/", "/");
+ }
+}
+
EAPI void
e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
{
@@ -2827,12 +2850,17 @@
while (dels)
{
Evas_Object *obj;
+ E_Fm2_Smart_Data *sd;
obj = dels->data;
+ sd = evas_object_smart_data_get(obj);
dels = eina_list_remove_list(dels, dels);
if ((_e_fm2_list_walking > 0) &&
(eina_list_data_find(_e_fm2_list_remove, obj))) continue;
- evas_object_smart_callback_call(obj, "dir_deleted", NULL);
+ if (sd->config->view.open_dirs_in_place)
+ _e_fm2_path_parent_set(obj, sd->realpath);
+ else
+ evas_object_smart_callback_call(obj, "dir_deleted", NULL);
}
_e_fm2_list_walking--;
if (_e_fm2_list_walking == 0)
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables
unlimited royalty-free distribution of the report engine
for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel