unsigned int event_win;
} Ecore_Wl2_Event_Window_Show;
+typedef struct _Ecore_Wl2_Event_Window_Hide
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+} Ecore_Wl2_Event_Window_Hide;
+
typedef enum _Ecore_Wl2_Window_Type
{
ECORE_WL2_WINDOW_TYPE_NONE,
EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE; /** @since 1.20 */
EAPI extern int ECORE_WL2_EVENT_AUX_HINT_ALLOWED; /** @since 1.20 */
EAPI extern int ECORE_WL2_EVENT_WINDOW_SHOW; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_HIDE; /** @since 1.20 */
/**
* @file
EAPI int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE = 0;
EAPI int ECORE_WL2_EVENT_AUX_HINT_ALLOWED = 0;
EAPI int ECORE_WL2_EVENT_WINDOW_SHOW = 0;
+EAPI int ECORE_WL2_EVENT_WINDOW_HIDE = 0;
EAPI int _ecore_wl2_event_window_www = -1;
EAPI int _ecore_wl2_event_window_www_drag = -1;
ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE = ecore_event_type_new();
ECORE_WL2_EVENT_AUX_HINT_ALLOWED = ecore_event_type_new();
ECORE_WL2_EVENT_WINDOW_SHOW = ecore_event_type_new();
+ ECORE_WL2_EVENT_WINDOW_HIDE = ecore_event_type_new();
}
if (!no_session_recovery)
no_session_recovery = !!getenv("EFL_NO_WAYLAND_SESSION_RECOVERY");
ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_REQUEST,
ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE,
ECORE_WL2_EVENT_AUX_HINT_ALLOWED,
- ECORE_WL2_EVENT_WINDOW_SHOW);
+ ECORE_WL2_EVENT_WINDOW_SHOW,
+ ECORE_WL2_EVENT_WINDOW_HIDE);
/* shutdown Ecore_Event */
ecore_event_shutdown();
ecore_event_add(ECORE_WL2_EVENT_WINDOW_SHOW, ev, NULL, NULL);
}
+static void
+_ecore_wl2_window_hide_send(Ecore_Wl2_Window *window)
+{
+ Ecore_Wl2_Event_Window_Hide *ev;
+
+ ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Hide));
+ if (!ev) return;
+
+ ev->win = window->id;
+ if (window->parent)
+ ev->parent_win = window->parent->id;
+ ev->event_win = window->id;
+ ecore_event_add(ECORE_WL2_EVENT_WINDOW_HIDE, ev, NULL, NULL);
+}
+
EAPI Ecore_Wl2_Window *
ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h)
{
EINA_SAFETY_ON_NULL_RETURN(window);
+ _ecore_wl2_window_hide_send(window);
+
EINA_INLIST_FOREACH_SAFE(window->subsurfs, tmp, subsurf)
_ecore_wl2_subsurf_unmap(subsurf);