devilhorns pushed a commit to branch master.

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

commit ae00e442694880ccd2f632f86ddef4a3b9a40525
Author: Chris Michael <[email protected]>
Date:   Wed Oct 29 14:55:17 2014 -0400

    ecore-evas-wayland: Fix wayland windows not showing up after 
5954289c6ce1cd55ff212428291604b981438439
    
    Summary: Wayland windows should follow X11 windows fairly closely,
    thus only set withdrawn property if they are override windows. If not,
    internal dialogs do not show up in Enlightenment (wayland-only).
    
    @fix
    
    Signed-off-by: Chris Michael <[email protected]>
---
 .../engines/wayland/ecore_evas_wayland_egl.c           | 18 ++++++++++++++----
 .../engines/wayland/ecore_evas_wayland_shm.c           | 18 ++++++++++++++----
 2 files changed, 28 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 6dd28fa..c8b566b 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
@@ -331,8 +331,13 @@ _ecore_evas_wl_show(Ecore_Evas *ee)
         evas_object_resize(wdata->frame, ee->w + fw, ee->h + fh);
      }
 
-   ee->prop.withdrawn = EINA_FALSE;
-   if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+   if (ee->prop.override)
+     {
+        ee->prop.withdrawn = EINA_FALSE;
+        if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+     }
+
+   if (ee->visible) return;
    ee->visible = 1;
    if (ee->func.fn_show) ee->func.fn_show(ee);
 }
@@ -360,8 +365,13 @@ _ecore_evas_wl_hide(Ecore_Evas *ee)
    if (wdata->win) 
      ecore_wl_window_hide(wdata->win);
 
-   ee->prop.withdrawn = EINA_TRUE;
-   if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+   if (ee->prop.override)
+     {
+        ee->prop.withdrawn = EINA_TRUE;
+        if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+     }
+
+   if (!ee->visible) return;
    ee->visible = 0;
    ee->should_be_visible = 0;
    _ecore_evas_wl_common_frame_callback_clean(ee);
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 5f99f7a..09bf26e 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
@@ -323,8 +323,13 @@ _ecore_evas_wl_show(Ecore_Evas *ee)
         evas_object_resize(wdata->frame, ee->w + fw, ee->h + fh);
      }
 
-   ee->prop.withdrawn = EINA_FALSE;
-   if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+   if (ee->prop.override)
+     {
+        ee->prop.withdrawn = EINA_FALSE;
+        if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+     }
+
+   if (ee->visible) return;
    ee->visible = 1;
    if (ee->func.fn_show) ee->func.fn_show(ee);
 }
@@ -352,8 +357,13 @@ _ecore_evas_wl_hide(Ecore_Evas *ee)
    if (wdata->win) 
      ecore_wl_window_hide(wdata->win);
 
-   ee->prop.withdrawn = EINA_TRUE;
-   if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+   if (ee->prop.override)
+     {
+        ee->prop.withdrawn = EINA_TRUE;
+        if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+     }
+
+   if (!ee->visible) return;
    ee->visible = 0;
    ee->should_be_visible = 0;
    _ecore_evas_wl_common_frame_callback_clean(ee);

-- 


Reply via email to