From 2301349ad59751640ed9e59dd22edeafaf09da39 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 17 Jan 2019 20:16:23 +1000 Subject: Use noop output when there's no outputs connected Instead of having NULL workspace->output pointers, use a noop output. This should be safer. --- sway/server.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 5ae9bb01..43dc3900 100644 --- a/sway/server.c +++ b/sway/server.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -25,6 +26,7 @@ #include "sway/config.h" #include "sway/desktop/idle_inhibit_v1.h" #include "sway/input/input-manager.h" +#include "sway/output.h" #include "sway/server.h" #include "sway/tree/root.h" #if HAVE_XWAYLAND @@ -36,6 +38,7 @@ bool server_privileged_prepare(struct sway_server *server) { server->wl_display = wl_display_create(); server->wl_event_loop = wl_display_get_event_loop(server->wl_display); server->backend = wlr_backend_autocreate(server->wl_display, NULL); + server->noop_backend = wlr_noop_backend_create(server->wl_display); if (!server->backend) { sway_log(SWAY_ERROR, "Unable to create backend"); @@ -116,6 +119,9 @@ bool server_init(struct sway_server *server) { return false; } + struct wlr_output *wlr_output = wlr_noop_add_output(server->noop_backend); + root->noop_output = output_create(wlr_output); + // This may have been set already via -Dtxn-timeout if (!server->txn_timeout_ms) { server->txn_timeout_ms = 200; -- cgit v1.2.3-54-g00ecf