diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 12dc9cc7a..f428e656e 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -546,6 +546,8 @@ void handle_new_output(struct wl_listener *listener, void *data) { struct sway_output_non_desktop *non_desktop = output_non_desktop_create(wlr_output); #if WLR_HAS_DRM_BACKEND if (server->drm_lease_manager) { + wlr_drm_lease_device_v1_add_backend(server->drm_lease_manager, + wlr_output->backend); wlr_drm_lease_v1_manager_offer_output(server->drm_lease_manager, wlr_output); } diff --git a/sway/server.c b/sway/server.c index ed3468b53..3f0ec348e 100644 --- a/sway/server.c +++ b/sway/server.c @@ -489,8 +489,8 @@ bool server_init(struct sway_server *server) { } #if WLR_HAS_DRM_BACKEND - server->drm_lease_manager= - wlr_drm_lease_v1_manager_create(server->wl_display, server->backend); + server->drm_lease_manager = + wlr_drm_lease_v1_manager_create_lazy(server->wl_display); if (server->drm_lease_manager) { server->drm_lease_request.notify = handle_drm_lease_request; wl_signal_add(&server->drm_lease_manager->events.request,