aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/wlr/types/wlr_compositor.h11
-rw-r--r--types/wlr_compositor.c7
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;
}