summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoram Park <boram1288.park@samsung.com>2015-04-30 19:25:25 +0900
committerBoram Park <boram1288.park@samsung.com>2015-04-30 19:25:25 +0900
commitc18839df8234733458eb419eaf71ee9c199f7904 (patch)
tree5fac6256660ddde70067f0ab876433591cf04480
parent8de0036a7eb92812139640267f346a0f246cf5cd (diff)
downloadefl-c18839df8234733458eb419eaf71ee9c199f7904.tar.gz
send ECORE_WL_EVENT_WINDOW_HIDE when window is destroyed
Change-Id: I05ce1ed7810e8ce7155f712d16416bf31812bb81
-rw-r--r--src/lib/ecore_wayland/ecore_wl_private.h1
-rw-r--r--src/lib/ecore_wayland/ecore_wl_window.c15
2 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h b/src/lib/ecore_wayland/ecore_wl_private.h
index f45b77141f..78f7dcdbe4 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -126,6 +126,7 @@ struct _Ecore_Wl_Window
struct xdg_surface *xdg_surface;
struct xdg_popup *xdg_popup;
+ Eina_Bool visible : 1;
Eina_Bool focused : 1;
Eina_Bool resizing : 1;
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c b/src/lib/ecore_wayland/ecore_wl_window.c
index ec1ea6571e..8e305ab145 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -146,6 +146,9 @@ ecore_wl_window_free(Ecore_Wl_Window *win)
}
}
+ if (win->visible) _ecore_wl_window_hide_send(win);
+ win->visible = EINA_FALSE;
+
if (win->anim_callback) wl_callback_destroy(win->anim_callback);
win->anim_callback = NULL;
@@ -452,7 +455,11 @@ ecore_wl_window_show(Ecore_Wl_Window *win)
break;
}
- _ecore_wl_window_show_send(win);
+ if (!win->visible)
+ {
+ _ecore_wl_window_show_send(win);
+ win->visible = EINA_TRUE;
+ }
}
EAPI void
@@ -462,7 +469,11 @@ ecore_wl_window_hide(Ecore_Wl_Window *win)
if (!win) return;
- _ecore_wl_window_hide_send(win);
+ if (win->visible)
+ {
+ _ecore_wl_window_hide_send(win);
+ win->visible = EINA_FALSE;
+ }
if (win->xdg_surface) xdg_surface_destroy(win->xdg_surface);
win->xdg_surface = NULL;