diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 77f900482..033a46cd3 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3675,10 +3675,20 @@ e_comp_object_native_surface_set(Evas_Object *obj, Eina_Bool set) if (set) { - /* native requires gl enabled, texture from pixmap enabled, and a non-shaped client */ - set = (e_comp->gl && - ((e_comp->comp_type != E_PIXMAP_TYPE_X) || e_comp_config_get()->texture_from_pixmap) && - (!cw->ec->shaped)); + switch (e_comp->comp_type) + { + case E_PIXMAP_TYPE_X: + /* native requires gl enabled, texture from pixmap enabled, and a non-shaped client */ + set = e_comp->gl && + e_comp_config_get()->texture_from_pixmap && + !cw->ec->shaped; + break; + case E_PIXMAP_TYPE_WL: + set = !e_pixmap_is_pixels(cw->ec->pixmap); + break; + default: + set = 0; + } if (set) set = (!!cw->ns) || e_pixmap_native_surface_init(cw->ec->pixmap, &ns); }