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 d8fa4e3ac0..43b54afb35 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 @@ -299,13 +299,21 @@ _ecore_evas_wl_show(Ecore_Evas *ee) if (wdata->win) { ecore_wl_window_show(wdata->win); + ecore_wl_window_alpha_set(wdata->win, ee->alpha); ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas); if (einfo) { - einfo->info.surface = ecore_wl_window_surface_get(wdata->win); - evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + struct wl_surface *surf; + + surf = ecore_wl_window_surface_get(wdata->win); + if ((!einfo->info.surface) || (einfo->info.surface != surf)) + { + einfo->info.surface = surf; + evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh); + } } } 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 4b1acaf644..f521f0ed97 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 @@ -292,6 +292,7 @@ _ecore_evas_wl_show(Ecore_Evas *ee) if (wdata->win) { ecore_wl_window_show(wdata->win); + ecore_wl_window_alpha_set(wdata->win, ee->alpha); ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas); @@ -304,6 +305,7 @@ _ecore_evas_wl_show(Ecore_Evas *ee) { einfo->info.wl_surface = surf; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh); } } }