ecore-wl2: create surfaces once compositor global is bound

it's expected that surfaces are created when a window exists

@fix
This commit is contained in:
Mike Blumenkrantz 2017-07-07 16:26:50 -04:00
parent 03d2c43018
commit 38d18e559d
3 changed files with 5 additions and 1 deletions

View File

@ -138,10 +138,13 @@ _cb_global_add(void *data, struct wl_registry *registry, unsigned int id, const
if (!strcmp(interface, "wl_compositor"))
{
Ecore_Wl2_Window *window;
ewd->wl.compositor_version = MIN(version, 4);
ewd->wl.compositor =
wl_registry_bind(registry, id, &wl_compositor_interface,
ewd->wl.compositor_version);
EINA_INLIST_FOREACH(ewd->windows, window)
_ecore_wl2_window_surface_create(window);
}
else if (!strcmp(interface, "wl_subcompositor"))
{

View File

@ -502,6 +502,7 @@ void _ecore_wl2_dnd_del(Ecore_Wl2_Dnd_Source *source);
void _ecore_wl2_subsurf_unmap(Ecore_Wl2_Subsurface *subsurf);
void _ecore_wl2_subsurf_free(Ecore_Wl2_Subsurface *subsurf);
void _ecore_wl2_window_surface_create(Ecore_Wl2_Window *window);
void _ecore_wl2_window_shell_surface_init(Ecore_Wl2_Window *window);
void _ecore_wl2_window_www_surface_init(Ecore_Wl2_Window *window);
void _ecore_wl2_window_semi_free(Ecore_Wl2_Window *window);

View File

@ -537,7 +537,7 @@ surf_err:
ERR("Failed to create surface for window");
}
static void
void
_ecore_wl2_window_surface_create(Ecore_Wl2_Window *window)
{
if (!window->display->wl.compositor) return;