diff options
-rw-r--r-- | include/wlr/types/wlr_compositor.h | 11 | ||||
-rw-r--r-- | types/wlr_compositor.c | 7 |
2 files changed, 6 insertions, 12 deletions
diff --git a/include/wlr/types/wlr_compositor.h b/include/wlr/types/wlr_compositor.h index 0d3b6e71..4c98c474 100644 --- a/include/wlr/types/wlr_compositor.h +++ b/include/wlr/types/wlr_compositor.h @@ -251,19 +251,12 @@ bool wlr_surface_set_role(struct wlr_surface *surface, const struct wlr_surface_ * Set the role object for this surface. The surface must have a role and * no already set role object. * - * wlr_surface_destroy_role_object() is called when the resource is destroyed. + * When the resource is destroyed, the surface is unmapped, + * wlr_surface_role.destroy is called and the role object is unset. */ void wlr_surface_set_role_object(struct wlr_surface *surface, struct wl_resource *role_resource); /** - * Destroy the object representing the surface's role. If it doesn't exist, - * this function is no-op. - * - * This doesn't reset the surface role itself. - */ -void wlr_surface_destroy_role_object(struct wlr_surface *surface); - -/** * Map the surface. If the surface is already mapped, this is no-op. * * This function must only be used by surface role implementations. diff --git a/types/wlr_compositor.c b/types/wlr_compositor.c index 68a7c229..f9c46c34 100644 --- a/types/wlr_compositor.c +++ b/types/wlr_compositor.c @@ -626,6 +626,7 @@ static void surface_state_destroy_cached(struct wlr_surface_state *state) { } static void surface_output_destroy(struct wlr_surface_output *surface_output); +static void surface_destroy_role_object(struct wlr_surface *surface); static void surface_handle_resource_destroy(struct wl_resource *resource) { struct wlr_surface *surface = wlr_surface_from_resource(resource); @@ -636,7 +637,7 @@ static void surface_handle_resource_destroy(struct wl_resource *resource) { surface_output_destroy(surface_output); } - wlr_surface_destroy_role_object(surface); + surface_destroy_role_object(surface); wl_signal_emit_mutable(&surface->events.destroy, surface); @@ -795,7 +796,7 @@ bool wlr_surface_set_role(struct wlr_surface *surface, const struct wlr_surface_ static void surface_handle_role_resource_destroy(struct wl_listener *listener, void *data) { struct wlr_surface *surface = wl_container_of(listener, surface, role_resource_destroy); - wlr_surface_destroy_role_object(surface); + surface_destroy_role_object(surface); } void wlr_surface_set_role_object(struct wlr_surface *surface, struct wl_resource *role_resource) { @@ -808,7 +809,7 @@ void wlr_surface_set_role_object(struct wlr_surface *surface, struct wl_resource wl_resource_add_destroy_listener(role_resource, &surface->role_resource_destroy); } -void wlr_surface_destroy_role_object(struct wlr_surface *surface) { +static void surface_destroy_role_object(struct wlr_surface *surface) { if (surface->role_resource == NULL) { return; } |