ecore-wl2: Add flag to indicate pending configure

With the change to xdg_shell v6 we need to indicate that a window has
a pending configure event, and not show the window if a configure is
pending. In order to handle this, we add a flag to the window
structure and can check it inside ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2017-01-10 11:27:10 -05:00
parent 19946e6035
commit 101c772412
2 changed files with 13 additions and 1 deletions

View File

@ -186,6 +186,11 @@ struct _Ecore_Wl2_Window
Eina_Bool input_set : 1;
Eina_Bool opaque_set : 1;
struct
{
Eina_Bool configure : 1;
} pending;
};
struct _Ecore_Wl2_Output

View File

@ -187,9 +187,14 @@ static const struct xdg_surface_listener _xdg_surface_listener =
};
static void
_zxdg_surface_cb_configure(void *data EINA_UNUSED, struct zxdg_surface_v6 *zxdg_surface, uint32_t serial)
_zxdg_surface_cb_configure(void *data, struct zxdg_surface_v6 *zxdg_surface EINA_UNUSED, uint32_t serial EINA_UNUSED)
{
Ecore_Wl2_Window *window;
zxdg_surface_v6_ack_configure(zxdg_surface, serial);
window = data;
window->pending.configure = EINA_FALSE;
}
static const struct zxdg_surface_v6_listener _zxdg_surface_listener =
@ -487,6 +492,8 @@ _ecore_wl2_window_shell_surface_init(Ecore_Wl2_Window *window)
window->zxdg_configure_ack = zxdg_surface_v6_ack_configure;
_ecore_wl2_window_type_set(window);
window->pending.configure = EINA_TRUE;
/* TODO: surface commit needed ? */
wl_surface_commit(window->surface);
}