summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--NEWS1
-rw-r--r--src/bin/Makefile.am1
-rw-r--r--src/bin/e_exec.c23
4 files changed, 23 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index bdc3516be9..615e314241 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
2013-05-29 Mike Blumenkrantz
* added dnd support for text/x-moz-url
+ * fixed e_exec to open .desktop url links
2013-05-24 Christopher Michael
diff --git a/NEWS b/NEWS
index 304c69983f..039af86483 100644
--- a/NEWS
+++ b/NEWS
@@ -215,3 +215,4 @@ Fixes:
* toolbar gadgets no longer crash when trying to display a popup
* fixed theme bug which prevented windows from unshading correctly when animations were disabled
* filemanager windows no longer resize to 0x0 when double clicked with no icons present
+ * fixed e_exec to open .desktop url links
diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index 098f4393f6..77173126ec 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -16,6 +16,7 @@ AM_CPPFLAGS = \
@EMOTION_CFLAGS@ \
@WAYLAND_CFLAGS@ \
@WAYLAND_EGL_CFLAGS@ \
+-DE_BINDIR=\"$(bindir)\" \
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
-DPACKAGE_DATA_DIR=\"@PACKAGE_DATA_DIR@\" \
diff --git a/src/bin/e_exec.c b/src/bin/e_exec.c
index 75fec649da..67eb92cc64 100644
--- a/src/bin/e_exec.c
+++ b/src/bin/e_exec.c
@@ -186,8 +186,13 @@ e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec,
if (exec)
inst = _e_exec_cb_exec(launch, NULL, strdup(exec), 0);
else
- inst = efreet_desktop_command_get
- (desktop, files, (Efreet_Desktop_Command_Cb)_e_exec_cb_exec, launch);
+ {
+ if (desktop->exec)
+ inst = efreet_desktop_command_get(desktop, files,
+ (Efreet_Desktop_Command_Cb)_e_exec_cb_exec, launch);
+ else
+ inst = _e_exec_cb_exec(launch, desktop, NULL, 0);
+ }
}
else
inst = _e_exec_cb_exec(launch, NULL, strdup(exec), 0);
@@ -515,6 +520,18 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
else
exe = ecore_exe_run(exec, inst);
}
+ else if (desktop && desktop->url)
+ {
+ Eina_Strbuf *sb;
+
+ sb = eina_strbuf_new();
+ eina_strbuf_append(sb, E_BINDIR "/enlightenment_open '");
+ eina_strbuf_append(sb, desktop->url);
+ eina_strbuf_append_char(sb, '\'');
+ exe = ecore_exe_run(eina_strbuf_string_get(sb),
+ inst);
+ eina_strbuf_free(sb);
+ }
else
exe = ecore_exe_run(exec, inst);
}
@@ -557,7 +574,7 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
lnew = eina_list_append(l, inst);
if (l) eina_hash_modify(e_exec_instances, inst->key, lnew);
else eina_hash_add(e_exec_instances, inst->key, lnew);
- if (inst->desktop)
+ if (inst->desktop && inst->desktop->exec)
{
e_exec_start_pending = eina_list_append(e_exec_start_pending,
inst->desktop);