Fix protocol error when a client destroys and re-creates a subsurface
@@ -42,7 +42,8 @@ static void subcompositor_handle_get_subsurface(struct wl_client *client,
return;
}
- if (wlr_surface_is_subsurface(surface)) {
+ if (wlr_surface_is_subsurface(surface) &&
+ wlr_subsurface_from_surface(surface) != NULL) {
wl_resource_post_error(resource,
WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE,
"%s%d: wl_surface@%d is already a sub-surface",
@@ -101,11 +102,6 @@ static void subcompositor_finish(struct wlr_subcompositor *subcompositor) {
}
-
-
-
-
-
static const struct wl_compositor_interface wl_compositor_impl;
static struct wlr_compositor *compositor_from_resource(
