From 77a4654470aa48edc1dae69f928fa3291ce6e130 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 2 Dec 2013 17:42:37 -0200 Subject: [PATCH] ecore_evas/wayland_egl: Unset the surface on window hide. We must unset it, so the Evas engine knows that it has to do all the setup to destroy the EGL surfaces associated with it. And in the case of an ecore_evas_show, recreate everything again. --- .../engines/wayland/ecore_evas_wayland_egl.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) 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 ff4a6012c9..335111c949 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 @@ -285,7 +285,7 @@ _ecore_evas_wl_rotation_set(Ecore_Evas *ee, int rotation, int resize) static void _ecore_evas_wl_show(Ecore_Evas *ee) { - /* Evas_Engine_Info_Wayland_Egl *einfo; */ + Evas_Engine_Info_Wayland_Egl *einfo; Ecore_Evas_Engine_Wl_Data *wdata; int fw, fh; @@ -300,14 +300,13 @@ _ecore_evas_wl_show(Ecore_Evas *ee) { ecore_wl_window_show(wdata->win); ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); -// ecore_wl_window_buffer_attach(wdata->win, NULL, 0, 0); - /* 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); */ - /* } */ + 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); + } } if (wdata->frame)