From f27808b8d98d5b9907a347cd9f01bb7bef3218b9 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 23 Nov 2023 14:11:23 +0100 Subject: [PATCH] backend/multi: take wl_event_loop instead of wl_display --- backend/backend.c | 3 ++- backend/multi/backend.c | 12 ++++++------ include/backend/multi.h | 2 +- include/wlr/backend/multi.h | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/backend/backend.c b/backend/backend.c index 58fd8de4..5a7434b3 100644 --- a/backend/backend.c +++ b/backend/backend.c @@ -344,7 +344,8 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display, } struct wlr_session *session = NULL; - struct wlr_backend *multi = wlr_multi_backend_create(display); + struct wl_event_loop *loop = wl_display_get_event_loop(display); + struct wlr_backend *multi = wlr_multi_backend_create(loop); if (!multi) { wlr_log(WLR_ERROR, "could not allocate multibackend"); return NULL; diff --git a/backend/multi/backend.c b/backend/multi/backend.c index df74fbb1..dc2668bb 100644 --- a/backend/multi/backend.c +++ b/backend/multi/backend.c @@ -48,7 +48,7 @@ static void subbackend_state_destroy(struct subbackend_state *sub) { static void multi_backend_destroy(struct wlr_backend *wlr_backend) { struct wlr_multi_backend *backend = multi_backend_from_backend(wlr_backend); - wl_list_remove(&backend->display_destroy.link); + wl_list_remove(&backend->event_loop_destroy.link); wlr_backend_finish(wlr_backend); @@ -105,13 +105,13 @@ static const struct wlr_backend_impl backend_impl = { .get_buffer_caps = multi_backend_get_buffer_caps, }; -static void handle_display_destroy(struct wl_listener *listener, void *data) { +static void handle_event_loop_destroy(struct wl_listener *listener, void *data) { struct wlr_multi_backend *backend = - wl_container_of(listener, backend, display_destroy); + wl_container_of(listener, backend, event_loop_destroy); multi_backend_destroy((struct wlr_backend*)backend); } -struct wlr_backend *wlr_multi_backend_create(struct wl_display *display) { +struct wlr_backend *wlr_multi_backend_create(struct wl_event_loop *loop) { struct wlr_multi_backend *backend = calloc(1, sizeof(*backend)); if (!backend) { wlr_log(WLR_ERROR, "Backend allocation failed"); @@ -124,8 +124,8 @@ struct wlr_backend *wlr_multi_backend_create(struct wl_display *display) { wl_signal_init(&backend->events.backend_add); wl_signal_init(&backend->events.backend_remove); - backend->display_destroy.notify = handle_display_destroy; - wl_display_add_destroy_listener(display, &backend->display_destroy); + backend->event_loop_destroy.notify = handle_event_loop_destroy; + wl_event_loop_add_destroy_listener(loop, &backend->event_loop_destroy); return &backend->backend; } diff --git a/include/backend/multi.h b/include/backend/multi.h index 20ad9db1..3ffd8140 100644 --- a/include/backend/multi.h +++ b/include/backend/multi.h @@ -10,7 +10,7 @@ struct wlr_multi_backend { struct wl_list backends; - struct wl_listener display_destroy; + struct wl_listener event_loop_destroy; struct { struct wl_signal backend_add; diff --git a/include/wlr/backend/multi.h b/include/wlr/backend/multi.h index 09000ac2..c4322d98 100644 --- a/include/wlr/backend/multi.h +++ b/include/wlr/backend/multi.h @@ -15,7 +15,7 @@ * Creates a multi-backend. Multi-backends wrap an arbitrary number of backends * and aggregate their new_output/new_input signals. */ -struct wlr_backend *wlr_multi_backend_create(struct wl_display *display); +struct wlr_backend *wlr_multi_backend_create(struct wl_event_loop *loop); /** * Adds the given backend to the multi backend. This should be done before the * new backend is started.