elm_win - patchec by kimcinoo@gmail.com
authorhermet <hermet@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 29 Jul 2011 14:28:33 +0000 (14:28 +0000)
committerhermet <hermet@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 29 Jul 2011 14:28:33 +0000 (14:28 +0000)
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.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@61894 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/elm_win.c

index 85fe2f0..be639d0 100644 (file)
@@ -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))