summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-03-17 13:17:02 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-03-17 15:08:29 -0400
commit3ca416cc0a8d262bd59c150be3cb1c66934d97fb (patch)
treef3230577fafd4ef099de4014ad8a108ddcf57b57
parent047f08a9942661f9c6fe0263656770decc648136 (diff)
downloadenlightenment-3ca416cc0a8d262bd59c150be3cb1c66934d97fb.tar.gz
add wrappers for elm_win util create functions
avoid deadlocking in gl init by forcing sw
-rw-r--r--src/bin/e_win.c32
-rw-r--r--src/bin/e_win.h8
2 files changed, 40 insertions, 0 deletions
diff --git a/src/bin/e_win.c b/src/bin/e_win.c
index 43c3abba8d..b22823d646 100644
--- a/src/bin/e_win.c
+++ b/src/bin/e_win.c
@@ -2,6 +2,8 @@
/* intercept elm_win operations so we talk directly to e_client */
#undef elm_win_add
+#undef elm_win_util_dialog_add
+#undef elm_win_util_standard_add
typedef struct _Elm_Win_Trap_Ctx
{
@@ -501,3 +503,33 @@ e_elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
free(eng);
return o;
}
+
+E_API Evas_Object *
+elm_win_util_standard_add(const char *name, const char *title)
+{
+ char *eng;
+ Evas_Object *o;
+
+ eng = eina_strdup(getenv("ELM_ACCEL"));
+ e_util_env_set("ELM_ACCEL", "none");
+ o = elm_win_util_standard_add(name, title);
+ e_util_env_set("ELM_ACCEL", eng);
+ elm_win_alpha_set(o, 1);
+ free(eng);
+ return o;
+}
+
+E_API Evas_Object *
+e_elm_win_util_dialog_add(Evas_Object *parent, const char *name, const char *title)
+{
+ char *eng;
+ Evas_Object *o;
+
+ eng = eina_strdup(getenv("ELM_ACCEL"));
+ e_util_env_set("ELM_ACCEL", "none");
+ o = elm_win_util_dialog_add(parent, name, title);
+ e_util_env_set("ELM_ACCEL", eng);
+ elm_win_alpha_set(o, 1);
+ free(eng);
+ return o;
+}
diff --git a/src/bin/e_win.h b/src/bin/e_win.h
index a18e2d92a6..683dd7e1b7 100644
--- a/src/bin/e_win.h
+++ b/src/bin/e_win.h
@@ -38,9 +38,17 @@ e_obj_is_win(const void *obj)
}
E_API Evas_Object *e_elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
+E_API Evas_Object *elm_win_util_standard_add(const char *name, const char *title);
+E_API Evas_Object *e_elm_win_util_dialog_add(Evas_Object *parent, const char *name, const char *title);
#define elm_win_add(X, Y, Z) \
e_elm_win_add((X), (Y), (Z))
+#define elm_win_util_dialog_add(X, Y, Z) \
+ e_elm_win_util_dialog_add((X), (Y), (Z))
+
+#define elm_win_util_standard_add(X, Y) \
+ e_elm_win_util_standard_add((X), (Y))
+
#endif
#endif