color_management_v1: add destroy event to manager

This commit is contained in:
Simon Ser 2025-07-29 19:29:24 +02:00 committed by Simon Zeni
parent 138210f01c
commit 26c1476827
2 changed files with 7 additions and 0 deletions

View file

@ -58,6 +58,10 @@ struct wlr_color_manager_v1_options {
struct wlr_color_manager_v1 {
struct wl_global *global;
struct {
struct wl_signal destroy;
} events;
struct {
struct wlr_color_manager_v1_features features;

View file

@ -887,6 +887,8 @@ static void manager_bind(struct wl_client *client, void *data,
static void manager_handle_display_destroy(struct wl_listener *listener, void *data) {
struct wlr_color_manager_v1 *manager = wl_container_of(listener, manager, display_destroy);
wl_signal_emit_mutable(&manager->events.destroy, NULL);
assert(wl_list_empty(&manager->events.destroy.listener_list));
wl_list_remove(&manager->display_destroy.link);
wl_global_destroy(manager->global);
free(manager->render_intents);
@ -934,6 +936,7 @@ struct wlr_color_manager_v1 *wlr_color_manager_v1_create(struct wl_display *disp
manager->transfer_functions_len = options->transfer_functions_len;
manager->primaries_len = options->primaries_len;
wl_signal_init(&manager->events.destroy);
wl_list_init(&manager->outputs);
wl_list_init(&manager->surface_feedbacks);