From 3ca416cc0a8d262bd59c150be3cb1c66934d97fb Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 17 Mar 2017 13:17:02 -0400 Subject: [PATCH] add wrappers for elm_win util create functions avoid deadlocking in gl init by forcing sw --- src/bin/e_win.c | 32 ++++++++++++++++++++++++++++++++ src/bin/e_win.h | 8 ++++++++ 2 files changed, 40 insertions(+) diff --git a/src/bin/e_win.c b/src/bin/e_win.c index 43c3abba8..b22823d64 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 a18e2d92a..683dd7e1b 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