From 38064f1d182ec80dc87a2132cbcf010a5a14c606 Mon Sep 17 00:00:00 2001 From: emersion Date: Mon, 23 Apr 2018 21:50:15 +0100 Subject: [PATCH] Fix protocol error when a client destroys and re-creates a subsurface --- types/wlr_compositor.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) 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(