diff --git a/src/bin/e_exec.c b/src/bin/e_exec.c
index 6e5bc54fa..a3b9d13ea 100644
--- a/src/bin/e_exec.c
+++ b/src/bin/e_exec.c
@@ -203,7 +203,6 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
// need a way to still inherit from parent env of wm.
e_util_env_set("__GL_SYNC_TO_VBLANK", NULL);
- e_util_library_path_strip();
//// FIXME: seem to be some issues with the pipe and filling up ram - need to
//// check. for now disable.
// exe = ecore_exe_pipe_run(exec,
@@ -212,17 +211,44 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
// inst);
if ((desktop) && (desktop->path))
{
- if (!getcwd(buf, sizeof(buf))) return NULL;
- if (chdir(desktop->path)) return NULL;
+ if (!getcwd(buf, sizeof(buf)))
+ {
+ E_FREE(inst);
+ e_util_dialog_show(_("Run Error"),
+ _("Enlightenment was unable to get current directory"));
+ return NULL;
+ }
+ if (chdir(desktop->path))
+ {
+ E_FREE(inst);
+ e_util_dialog_show(_("Run Error"),
+ _("Enlightenment was unable to change to directory:
"
+ "
"
+ "%s"),
+ buf);
+ return NULL;
+ }
+ e_util_library_path_strip();
exe = ecore_exe_run(exec, inst);
- if (chdir(buf)) return NULL;
+ e_util_library_path_restore();
+ if (chdir(buf))
+ {
+ e_util_dialog_show(_("Run Error"),
+ _("Enlightenment was unable to restore to directory:
"
+ "
"
+ "%s"),
+ buf);
+ E_FREE(inst);
+ return NULL;
+ }
}
else
{
+ e_util_library_path_strip();
exe = ecore_exe_run(exec, inst);
+ e_util_library_path_restore();
}
- e_util_library_path_restore();
if (penv_display)
{
e_util_env_set("DISPLAY", penv_display);
@@ -234,7 +260,7 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
e_util_dialog_show(_("Run Error"),
_("Enlightenment was unable to fork a child process:
"
"
"
- "%s
"),
+ "%s"),
exec);
return NULL;
}
diff --git a/src/modules/clock/e_mod_main.c b/src/modules/clock/e_mod_main.c
index 4dea9a0f3..25146b157 100644
--- a/src/modules/clock/e_mod_main.c
+++ b/src/modules/clock/e_mod_main.c
@@ -26,7 +26,7 @@ typedef struct _Instance Instance;
struct _Instance
{
E_Gadcon_Client *gcc;
- Evas_Object *o_clock, *o_cal;
+ Evas_Object *o_clock, *o_table, *o_popclock, *o_cal;
E_Gadcon_Popup *popup;
};
@@ -36,13 +36,25 @@ static void
_clock_popup_new(Instance *inst)
{
Evas *evas;
-
+ Evas_Object *o, *oi;
+
if (inst->popup) return;
inst->popup = e_gadcon_popup_new(inst->gcc);
evas = inst->popup->win->evas;
- inst->o_cal = e_widget_table_add(evas, 0);
- e_widget_size_min_set(inst->o_cal, 100, 100);
- e_gadcon_popup_content_set(inst->popup, inst->o_cal);
+
+ inst->o_table = e_widget_table_add(evas, 0);
+
+ oi = edje_object_add(evas);
+ inst->o_popclock = oi;
+ e_theme_edje_object_set(oi, "base/theme/modules/clock",
+ "e/modules/clock/main");
+ o = e_widget_image_add_from_object(evas, oi, 128, 128);
+ evas_object_show(oi);
+
+ e_widget_table_object_align_append(inst->o_table, o,
+ 0, 0, 1, 1, 0, 0, 0, 0, 0.5, 0.5);
+
+ e_gadcon_popup_content_set(inst->popup, inst->o_table);
e_gadcon_popup_show(inst->popup);
}