xwayland/xwm: don't insert surface in list on error
In case wl_event_loop_add_timer errors out, don't insert the free'd wlr_xwayland_surface in the list. Closes: https://github.com/swaywm/wlroots/issues/1721
This commit is contained in:
parent
9686895b4e
commit
cd4827b3b6
|
@ -141,7 +141,6 @@ static struct wlr_xwayland_surface *xwayland_surface_create(
|
||||||
surface->width = width;
|
surface->width = width;
|
||||||
surface->height = height;
|
surface->height = height;
|
||||||
surface->override_redirect = override_redirect;
|
surface->override_redirect = override_redirect;
|
||||||
wl_list_insert(&xwm->surfaces, &surface->link);
|
|
||||||
wl_list_init(&surface->children);
|
wl_list_init(&surface->children);
|
||||||
wl_list_init(&surface->parent_link);
|
wl_list_init(&surface->parent_link);
|
||||||
wl_signal_init(&surface->events.destroy);
|
wl_signal_init(&surface->events.destroy);
|
||||||
|
@ -182,6 +181,8 @@ static struct wlr_xwayland_surface *xwayland_surface_create(
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wl_list_insert(&xwm->surfaces, &surface->link);
|
||||||
|
|
||||||
wlr_signal_emit_safe(&xwm->xwayland->events.new_surface, surface);
|
wlr_signal_emit_safe(&xwm->xwayland->events.new_surface, surface);
|
||||||
|
|
||||||
return surface;
|
return surface;
|
||||||
|
|
Loading…
Reference in New Issue