Fix protocol error when a client destroys and re-creates a subsurface

This commit is contained in:
emersion 2018-04-23 21:50:15 +01:00
parent c0831344aa
commit 38064f1d18
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48

View file

@ -42,7 +42,8 @@ static void subcompositor_handle_get_subsurface(struct wl_client *client,
return; 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_resource_post_error(resource,
WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE, WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE,
"%s%d: wl_surface@%d is already a sub-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 const struct wl_compositor_interface wl_compositor_impl;
static struct wlr_compositor *compositor_from_resource( static struct wlr_compositor *compositor_from_resource(