forked from enlightenment/efl
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:
parent
19946e6035
commit
101c772412
|
@ -186,6 +186,11 @@ struct _Ecore_Wl2_Window
|
||||||
|
|
||||||
Eina_Bool input_set : 1;
|
Eina_Bool input_set : 1;
|
||||||
Eina_Bool opaque_set : 1;
|
Eina_Bool opaque_set : 1;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
Eina_Bool configure : 1;
|
||||||
|
} pending;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Ecore_Wl2_Output
|
struct _Ecore_Wl2_Output
|
||||||
|
|
|
@ -187,9 +187,14 @@ static const struct xdg_surface_listener _xdg_surface_listener =
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
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);
|
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 =
|
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;
|
window->zxdg_configure_ack = zxdg_surface_v6_ack_configure;
|
||||||
_ecore_wl2_window_type_set(window);
|
_ecore_wl2_window_type_set(window);
|
||||||
|
|
||||||
|
window->pending.configure = EINA_TRUE;
|
||||||
|
|
||||||
/* TODO: surface commit needed ? */
|
/* TODO: surface commit needed ? */
|
||||||
wl_surface_commit(window->surface);
|
wl_surface_commit(window->surface);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue