diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index e453ce8346..a04a2b8950 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -159,7 +159,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, ee->prop.request_pos = 0; ee->prop.sticky = 0; ee->prop.draw_frame = frame; - ee->alpha = EINA_FALSE; + ee->alpha = EINA_TRUE; /* NB: Disabled for right now as it causes textgrid (terminology) * to not draw text anymore */ @@ -184,6 +184,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, wdata->win = ecore_wl_window_new(p, x, y, w + fw, h + fh, ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW); + ecore_wl_window_alpha_set(wdata->win, ee->alpha); ee->prop.window = wdata->win->id; ee->evas = evas_new(); @@ -461,23 +462,20 @@ _ecore_evas_wayland_egl_alpha_do(Ecore_Evas *ee, int alpha) if (!ee) return; if ((ee->alpha == alpha)) return; - ee->alpha = alpha; + ee->alpha = EINA_TRUE; wdata = ee->engine.data; - if (wdata->win) ecore_wl_window_alpha_set(wdata->win, alpha); + if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha); evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh); if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas))) { - einfo->info.destination_alpha = alpha; + einfo->info.destination_alpha = ee->alpha; if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh); } - - if (wdata->win) - ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); } static void @@ -485,7 +483,7 @@ _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha) { if (ee->in_async_render) { - ee->delayed.alpha = alpha; + ee->delayed.alpha = EINA_TRUE; ee->delayed.alpha_changed = EINA_TRUE; return; } @@ -504,24 +502,21 @@ _ecore_evas_wayland_egl_transparent_do(Ecore_Evas *ee, int transparent) if (!ee) return; if ((ee->transparent == transparent)) return; - ee->transparent = transparent; + ee->transparent = EINA_TRUE; wdata = ee->engine.data; if (wdata->win) - ecore_wl_window_transparent_set(wdata->win, transparent); + ecore_wl_window_transparent_set(wdata->win, ee->transparent); evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh); if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas))) { - einfo->info.destination_alpha = transparent; + einfo->info.destination_alpha = ee->transparent; if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh); } - - if (wdata->win) - ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); } static void @@ -529,7 +524,7 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent) { if (ee->in_async_render) { - ee->delayed.transparent = transparent; + ee->delayed.transparent = EINA_TRUE; ee->delayed.transparent_changed = EINA_TRUE; return; } diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c index fb5fd24113..8c9c047f6f 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c @@ -157,7 +157,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, ee->prop.request_pos = 0; ee->prop.sticky = 0; ee->prop.draw_frame = frame; - ee->alpha = EINA_FALSE; + ee->alpha = EINA_TRUE; if (getenv("ECORE_EVAS_FORCE_SYNC_RENDER")) ee->can_async_render = 0; @@ -181,6 +181,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, wdata->win = ecore_wl_window_new(p, x, y, w + fw, h + fh, ECORE_WL_WINDOW_BUFFER_TYPE_SHM); + ecore_wl_window_alpha_set(wdata->win, ee->alpha); ee->prop.window = wdata->win->id; ee->evas = evas_new(); @@ -460,23 +461,20 @@ _ecore_evas_wayland_shm_alpha_do(Ecore_Evas *ee, int alpha) if (!ee) return; if ((ee->alpha == alpha)) return; - ee->alpha = alpha; + ee->alpha = EINA_TRUE; wdata = ee->engine.data; - if (wdata->win) ecore_wl_window_alpha_set(wdata->win, alpha); + if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha); evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh); if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas))) { - einfo->info.destination_alpha = alpha; + einfo->info.destination_alpha = ee->alpha; if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh); } - - if (wdata->win) - ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); } static void @@ -484,7 +482,7 @@ _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha) { if (ee->in_async_render) { - ee->delayed.alpha = alpha; + ee->delayed.alpha = EINA_TRUE; ee->delayed.alpha_changed = EINA_TRUE; return; } @@ -502,24 +500,21 @@ _ecore_evas_wayland_shm_transparent_do(Ecore_Evas *ee, int transparent) if (!ee) return; if ((ee->transparent == transparent)) return; - ee->transparent = transparent; + ee->transparent = EINA_TRUE; wdata = ee->engine.data; if (wdata->win) - ecore_wl_window_transparent_set(wdata->win, transparent); + ecore_wl_window_transparent_set(wdata->win, ee->transparent); evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh); if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas))) { - einfo->info.destination_alpha = transparent; + einfo->info.destination_alpha = ee->transparent; if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh); } - - if (wdata->win) - ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); } static void @@ -527,7 +522,7 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent) { if (ee->in_async_render) { - ee->delayed.transparent = transparent; + ee->delayed.transparent = EINA_TRUE; ee->delayed.transparent_changed = EINA_TRUE; return; }