From ae00e442694880ccd2f632f86ddef4a3b9a40525 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Wed, 29 Oct 2014 14:55:17 -0400 Subject: [PATCH] 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 --- .../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 6dd28faf16..c8b566bf08 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 5f99f7a299..09bf26e128 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);