From 6c8fd6017e92441e8b1702958f34fd9d88e32928 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Wed, 20 Dec 2017 05:54:41 -0500 Subject: [PATCH] backend add and remove events --- backend/multi/backend.c | 6 ++++++ include/backend/multi.h | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/backend/multi/backend.c b/backend/multi/backend.c index c000342b..0dd3c54b 100644 --- a/backend/multi/backend.c +++ b/backend/multi/backend.c @@ -79,6 +79,9 @@ struct wlr_backend *wlr_multi_backend_create(struct wl_display *display) { wl_list_init(&backend->backends); wlr_backend_init(&backend->backend, &backend_impl); + wl_signal_init(&backend->events.backend_add); + wl_signal_init(&backend->events.backend_remove); + return &backend->backend; } @@ -162,6 +165,8 @@ void wlr_multi_backend_add(struct wlr_backend *_multi, wl_signal_add(&backend->events.output_remove, &sub->output_remove); sub->output_remove.notify = output_remove_reemit; + + wl_signal_emit(&multi->events.backend_add, backend); } void wlr_multi_backend_remove(struct wlr_backend *_multi, @@ -173,6 +178,7 @@ void wlr_multi_backend_remove(struct wlr_backend *_multi, multi_backend_get_subbackend(multi, backend); if (sub) { + wl_signal_emit(&multi->events.backend_remove, backend); subbackend_state_destroy(sub); } } diff --git a/include/backend/multi.h b/include/backend/multi.h index e283139c..947464e1 100644 --- a/include/backend/multi.h +++ b/include/backend/multi.h @@ -10,6 +10,11 @@ struct wlr_multi_backend { struct wlr_backend backend; struct wl_list backends; + + struct { + struct wl_signal backend_add; + struct wl_signal backend_remove; + } events; }; #endif