diff --git a/types/wlr_compositor.c b/types/wlr_compositor.c index 57f3bd91..2d9eec0f 100644 --- a/types/wlr_compositor.c +++ b/types/wlr_compositor.c @@ -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(