aboutsummaryrefslogtreecommitdiffstats
path: root/sway/server.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2019-01-17 20:16:23 +1000
committerLibravatar emersion <contact@emersion.fr>2019-01-22 09:55:13 +0100
commit2301349ad59751640ed9e59dd22edeafaf09da39 (patch)
tree1726c2f8ec1cd9baaf27fbed62aa6a337bc85ce7 /sway/server.c
parentseat_create: set initial focus for added seats (diff)
downloadsway-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.c6
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;