devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0ecaf00d97323b7c02c2c9423b60c5f457bcbb54

commit 0ecaf00d97323b7c02c2c9423b60c5f457bcbb54
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Fri Dec 2 13:26:50 2016 -0500

    ecore-evas-wayland: Use engine 'hidden' field for ecore_evas_hide operations
    
    This patch allows us to set a 'hidden' flag in the Evas Engine
    information structure instead of setting a NULL surface. Setting this
    flag allows us to hide/show a canvas without having to
    destroy/recreate a wl_surface every time.
    
    Signed-off-by: Chris Michael <cp.mich...@samsung.com>
---
 .../engines/wayland/ecore_evas_wayland_common.c           | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index a4c2f36..e5e4937 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -1756,12 +1756,13 @@ _ecore_evas_wl_common_show(Ecore_Evas *ee)
 
              surf = ecore_wl2_window_surface_get(wdata->win);
              if ((!einfo->info.wl_surface) || (einfo->info.wl_surface != surf))
-               {
-                  einfo->info.wl_surface = surf;
-                  if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info 
*)einfo))
-                    ERR("Failed to set Evas Engine Info for '%s'", ee->driver);
-                  evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h 
+ fh);
-               }
+               einfo->info.wl_surface = surf;
+
+             einfo->info.hidden = EINA_FALSE;
+             if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
+               ERR("Failed to set Evas Engine Info for '%s'", ee->driver);
+             evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
+
              einfo->www_avail = !!wdata->win->www_surface;
              einfo->just_mapped = EINA_TRUE;
           }
@@ -1793,7 +1794,7 @@ _ecore_evas_wl_common_hide(Ecore_Evas *ee)
    einfo = (Evas_Engine_Info_Wayland *)evas_engine_info_get(ee->evas);
    if (einfo)
      {
-        einfo->info.wl_surface = NULL;
+        einfo->info.hidden = EINA_TRUE;
         if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
           {
              ERR("Failed to set Evas Engine Info for '%s'", ee->driver);

-- 


Reply via email to