diff --git a/xwayland/xwm.c b/xwayland/xwm.c index a3fb61b4..50a85985 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -141,7 +141,6 @@ static struct wlr_xwayland_surface *xwayland_surface_create( surface->width = width; surface->height = height; surface->override_redirect = override_redirect; - wl_list_insert(&xwm->surfaces, &surface->link); wl_list_init(&surface->children); wl_list_init(&surface->parent_link); wl_signal_init(&surface->events.destroy); @@ -182,6 +181,8 @@ static struct wlr_xwayland_surface *xwayland_surface_create( return NULL; } + wl_list_insert(&xwm->surfaces, &surface->link); + wlr_signal_emit_safe(&xwm->xwayland->events.new_surface, surface); return surface;