diff --git a/backend/backend.c b/backend/backend.c index 1e57e8321..fb2446ca3 100644 --- a/backend/backend.c +++ b/backend/backend.c @@ -39,9 +39,10 @@ #define WAIT_SESSION_TIMEOUT 10000 // ms void wlr_backend_init(struct wlr_backend *backend, - const struct wlr_backend_impl *impl) { + const struct wlr_backend_impl *impl, struct wl_event_loop *loop) { *backend = (struct wlr_backend){ .impl = impl, + .event_loop = loop, }; wl_signal_init(&backend->events.destroy); wl_signal_init(&backend->events.new_input); diff --git a/backend/drm/backend.c b/backend/drm/backend.c index 4697234db..aa23e11d9 100644 --- a/backend/drm/backend.c +++ b/backend/drm/backend.c @@ -208,7 +208,7 @@ struct wlr_backend *wlr_drm_backend_create(struct wl_display *display, wlr_log_errno(WLR_ERROR, "Allocation failed"); return NULL; } - wlr_backend_init(&drm->backend, &backend_impl); + wlr_backend_init(&drm->backend, &backend_impl, wl_display_get_event_loop(display)); drm->session = session; wl_list_init(&drm->fbs); diff --git a/backend/headless/backend.c b/backend/headless/backend.c index 8ab7d039e..a3f1a7ca1 100644 --- a/backend/headless/backend.c +++ b/backend/headless/backend.c @@ -72,7 +72,7 @@ struct wlr_backend *wlr_headless_backend_create(struct wl_display *display) { return NULL; } - wlr_backend_init(&backend->backend, &backend_impl); + wlr_backend_init(&backend->backend, &backend_impl, wl_display_get_event_loop(display)); backend->display = display; wl_list_init(&backend->outputs); diff --git a/backend/libinput/backend.c b/backend/libinput/backend.c index cbdf8b72e..2a0b405ca 100644 --- a/backend/libinput/backend.c +++ b/backend/libinput/backend.c @@ -199,7 +199,7 @@ struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display, wlr_log(WLR_ERROR, "Allocation failed: %s", strerror(errno)); return NULL; } - wlr_backend_init(&backend->backend, &backend_impl); + wlr_backend_init(&backend->backend, &backend_impl, wl_display_get_event_loop(display)); wl_list_init(&backend->devices); diff --git a/backend/multi/backend.c b/backend/multi/backend.c index 8c36834e4..d3ebfea9a 100644 --- a/backend/multi/backend.c +++ b/backend/multi/backend.c @@ -119,7 +119,7 @@ struct wlr_backend *wlr_multi_backend_create(struct wl_display *display) { } wl_list_init(&backend->backends); - wlr_backend_init(&backend->backend, &backend_impl); + wlr_backend_init(&backend->backend, &backend_impl, wl_display_get_event_loop(display)); wl_signal_init(&backend->events.backend_add); wl_signal_init(&backend->events.backend_remove); diff --git a/backend/wayland/backend.c b/backend/wayland/backend.c index 9f78b6f1b..5e56ca85b 100644 --- a/backend/wayland/backend.c +++ b/backend/wayland/backend.c @@ -577,7 +577,7 @@ struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, return NULL; } - wlr_backend_init(&wl->backend, &backend_impl); + wlr_backend_init(&wl->backend, &backend_impl, wl_display_get_event_loop(display)); wl->local_display = display; wl_list_init(&wl->outputs); diff --git a/backend/x11/backend.c b/backend/x11/backend.c index fcaab6186..5102921aa 100644 --- a/backend/x11/backend.c +++ b/backend/x11/backend.c @@ -400,7 +400,7 @@ struct wlr_backend *wlr_x11_backend_create(struct wl_display *display, return NULL; } - wlr_backend_init(&x11->backend, &backend_impl); + wlr_backend_init(&x11->backend, &backend_impl, wl_display_get_event_loop(display)); x11->wl_display = display; wl_list_init(&x11->outputs); diff --git a/include/wlr/backend.h b/include/wlr/backend.h index 9a8a2d874..2ea7621d6 100644 --- a/include/wlr/backend.h +++ b/include/wlr/backend.h @@ -19,6 +19,7 @@ struct wlr_backend_impl; */ struct wlr_backend { const struct wlr_backend_impl *impl; + struct wl_event_loop *event_loop; struct { /** Raised when destroyed */ diff --git a/include/wlr/backend/interface.h b/include/wlr/backend/interface.h index da57cae90..c5d8bbf43 100644 --- a/include/wlr/backend/interface.h +++ b/include/wlr/backend/interface.h @@ -24,7 +24,7 @@ struct wlr_backend_impl { * to the provided struct wlr_backend_impl reference. */ void wlr_backend_init(struct wlr_backend *backend, - const struct wlr_backend_impl *impl); + const struct wlr_backend_impl *impl, struct wl_event_loop *loop); /** * Emit the destroy event and clean up common backend state. */