diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2019-01-17 20:16:23 +1000 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-01-22 09:55:13 +0100 |
commit | 2301349ad59751640ed9e59dd22edeafaf09da39 (patch) | |
tree | 1726c2f8ec1cd9baaf27fbed62aa6a337bc85ce7 /sway/server.c | |
parent | seat_create: set initial focus for added seats (diff) | |
download | sway-2301349ad59751640ed9e59dd22edeafaf09da39.tar.gz sway-2301349ad59751640ed9e59dd22edeafaf09da39.tar.zst sway-2301349ad59751640ed9e59dd22edeafaf09da39.zip |
Use noop output when there's no outputs connected
Instead of having NULL workspace->output pointers, use a noop output.
This should be safer.
Diffstat (limited to 'sway/server.c')
-rw-r--r-- | sway/server.c | 6 |
1 files changed, 6 insertions, 0 deletions
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 @@ | |||
4 | #include <stdlib.h> | 4 | #include <stdlib.h> |
5 | #include <wayland-server.h> | 5 | #include <wayland-server.h> |
6 | #include <wlr/backend.h> | 6 | #include <wlr/backend.h> |
7 | #include <wlr/backend/noop.h> | ||
7 | #include <wlr/backend/session.h> | 8 | #include <wlr/backend/session.h> |
8 | #include <wlr/render/wlr_renderer.h> | 9 | #include <wlr/render/wlr_renderer.h> |
9 | #include <wlr/types/wlr_compositor.h> | 10 | #include <wlr/types/wlr_compositor.h> |
@@ -25,6 +26,7 @@ | |||
25 | #include "sway/config.h" | 26 | #include "sway/config.h" |
26 | #include "sway/desktop/idle_inhibit_v1.h" | 27 | #include "sway/desktop/idle_inhibit_v1.h" |
27 | #include "sway/input/input-manager.h" | 28 | #include "sway/input/input-manager.h" |
29 | #include "sway/output.h" | ||
28 | #include "sway/server.h" | 30 | #include "sway/server.h" |
29 | #include "sway/tree/root.h" | 31 | #include "sway/tree/root.h" |
30 | #if HAVE_XWAYLAND | 32 | #if HAVE_XWAYLAND |
@@ -36,6 +38,7 @@ bool server_privileged_prepare(struct sway_server *server) { | |||
36 | server->wl_display = wl_display_create(); | 38 | server->wl_display = wl_display_create(); |
37 | server->wl_event_loop = wl_display_get_event_loop(server->wl_display); | 39 | server->wl_event_loop = wl_display_get_event_loop(server->wl_display); |
38 | server->backend = wlr_backend_autocreate(server->wl_display, NULL); | 40 | server->backend = wlr_backend_autocreate(server->wl_display, NULL); |
41 | server->noop_backend = wlr_noop_backend_create(server->wl_display); | ||
39 | 42 | ||
40 | if (!server->backend) { | 43 | if (!server->backend) { |
41 | sway_log(SWAY_ERROR, "Unable to create backend"); | 44 | sway_log(SWAY_ERROR, "Unable to create backend"); |
@@ -116,6 +119,9 @@ bool server_init(struct sway_server *server) { | |||
116 | return false; | 119 | return false; |
117 | } | 120 | } |
118 | 121 | ||
122 | struct wlr_output *wlr_output = wlr_noop_add_output(server->noop_backend); | ||
123 | root->noop_output = output_create(wlr_output); | ||
124 | |||
119 | // This may have been set already via -Dtxn-timeout | 125 | // This may have been set already via -Dtxn-timeout |
120 | if (!server->txn_timeout_ms) { | 126 | if (!server->txn_timeout_ms) { |
121 | server->txn_timeout_ms = 200; | 127 | server->txn_timeout_ms = 200; |