diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 6a04f52ad..2447a100c 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -3598,6 +3598,15 @@ _e_comp_populate(E_Comp *c) free(wins); } +static void +_e_comp_add_fail_job(void *d EINA_UNUSED) +{ + e_util_dialog_internal + (_("Compositor Warning"), _("Your display driver does not support OpenGL, or
" + "no OpenGL engines were compiled or installed for
" + "Evas or Ecore-Evas. Falling back to software engine.")); +} + static E_Comp * _e_comp_add(E_Manager *man) { @@ -3659,7 +3668,7 @@ _e_comp_add(E_Manager *man) if (c->man->num == 0) e_alert_composite_win(c->man->root, c->win); - if (conf->engine == E_COMP_ENGINE_GL) + if (gl_avail && (conf->engine == E_COMP_ENGINE_GL)) { int opt[20]; int opt_i = 0; @@ -3704,17 +3713,9 @@ _e_comp_add(E_Manager *man) } if (!c->ee) { -#if 0 - if (conf->engine == E_COMP_ENGINE_GL) - { - e_util_dialog_internal - (_("Compositor Warning"), _("Your display driver does not support OpenGL, or
" - "no OpenGL engines were compiled or installed for
" - "Evas or Ecore-Evas. Falling back to software engine.")); - } -#endif - c->ee = ecore_evas_software_x11_new(NULL, c->win, 0, 0, man->w, man->h); + if (conf->engine == E_COMP_ENGINE_GL) + ecore_job_add(_e_comp_add_fail_job, NULL); } {