Some applications are directly calling elm_config_preferred_engine_set.
To avoid patching all apps to work with Wayland, always set
ELM_WAYLAND_EGL if elm_config_preferred_engine_set is called with
EGL_OPENGL_X11 or EGL_SOFTWARE_X11 when DISPLAY is not set.
Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
EAPI void
elm_config_preferred_engine_set(const char *engine)
{
- if (engine)
- eina_stringshare_replace(&(_elm_preferred_engine), engine);
+ char *d;
+ if (engine) {
+#define ENGINE_COMPARE(name) (!strcmp(name, engine))
+ if (!(d = getenv("DISPLAY")) && (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
+ ENGINE_COMPARE(ELM_OPENGL_X11)))
+ eina_stringshare_replace(&(_elm_preferred_engine), ELM_WAYLAND_EGL);
+ else
+ eina_stringshare_replace(&(_elm_preferred_engine), engine);
+#undef ENGINE_COMPARE
+ }
else
{
ELM_SAFE_FREE(_elm_preferred_engine, eina_stringshare_del);