From c28fd3012ed4c2849cc7a6570a02e3e63c69e39e Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Fri, 29 Jul 2011 14:28:33 +0000 Subject: [PATCH] elm_win - patchec by kimcinoo@gmail.com Hi All, If ecore_evas_[not_software_x11]_new(); returns NULL while elm_win_add(); is called, then ecore_evas_software_x11_new(); is used instead of other engines. (FALLBACK_TRY) But the configuration value for engine is not changed. This makes improper result. After FALLBACK_TRY, the elm_win works with different configuration value. In this case, win->xwin (_elm_win_xwindow_get()) gives NULL. and elm_win_xsinodow_get() returns 0 also. Please refer to attached patch. Thanks a lot Sincerely, Shinwoo Kim. SVN revision: 61894 --- legacy/elementary/src/lib/elm_win.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index 85fe2f0013..be639d05cd 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -1401,11 +1401,12 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) win = ELM_NEW(Elm_Win); -#define FALLBACK_TRY(engine) \ - if (!win->ee) \ - do { \ +#define FALLBACK_TRY(engine) \ + if (!win->ee) \ + do { \ CRITICAL(engine " engine creation failed. Trying software X11."); \ - win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1); \ + elm_engine_set(ELM_SOFTWARE_X11); \ + win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1); \ } while (0) #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))