aboutsummaryrefslogtreecommitdiffstats
path: root/sway/server.c
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2017-11-11 11:58:43 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2017-11-11 11:58:43 -0500
commit7eafcc75f6f8abd2346e0d72b063bc10ce24378f (patch)
treece8a4cebdf5bc484643ec78f3cf59e0943ce50e8 /sway/server.c
parentMove sway's internal tree code to sway/tree/ (diff)
downloadsway-7eafcc75f6f8abd2346e0d72b063bc10ce24378f.tar.gz
sway-7eafcc75f6f8abd2346e0d72b063bc10ce24378f.tar.zst
sway-7eafcc75f6f8abd2346e0d72b063bc10ce24378f.zip
Initialize outputs from backend and add to tree
Diffstat (limited to 'sway/server.c')
-rw-r--r--sway/server.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/sway/server.c b/sway/server.c
index 4a74cfb5..b7ce4612 100644
--- a/sway/server.c
+++ b/sway/server.c
@@ -27,23 +27,14 @@ bool server_init(struct sway_server *server) {
27 server->data_device_manager = 27 server->data_device_manager =
28 wlr_data_device_manager_create(server->wl_display); 28 wlr_data_device_manager_create(server->wl_display);
29 29
30 const char *socket = wl_display_add_socket_auto(server->wl_display); 30 server->output_add.notify = output_add_notify;
31 if (!socket) { 31 wl_signal_add(&server->backend->events.output_add, &server->output_add);
32 sway_log_errno(L_ERROR, "Unable to open wayland socket");
33 wlr_backend_destroy(server->backend);
34 return false;
35 }
36 32
37 sway_log(L_INFO, "Running compositor on wayland display '%s'", socket); 33 server->socket = wl_display_add_socket_auto(server->wl_display);
38 setenv("_WAYLAND_DISPLAY", socket, true); 34 if (!sway_assert(server->socket, "Unable to open wayland socket")) {
39
40 if (!wlr_backend_start(server->backend)) {
41 sway_log(L_ERROR, "Failed to start backend");
42 wlr_backend_destroy(server->backend); 35 wlr_backend_destroy(server->backend);
43 return false; 36 return false;
44 } 37 }
45
46 setenv("WAYLAND_DISPLAY", socket, true);
47 return true; 38 return true;
48} 39}
49 40
@@ -51,3 +42,16 @@ void server_fini(struct sway_server *server) {
51 // TODO WLR: tear down more stuff 42 // TODO WLR: tear down more stuff
52 wlr_backend_destroy(server->backend); 43 wlr_backend_destroy(server->backend);
53} 44}
45
46void server_run(struct sway_server *server) {
47 sway_log(L_INFO, "Running compositor on wayland display '%s'",
48 server->socket);
49 setenv("_WAYLAND_DISPLAY", server->socket, true);
50 if (!sway_assert(wlr_backend_start(server->backend),
51 "Failed to start backend")) {
52 wlr_backend_destroy(server->backend);
53 return;
54 }
55 setenv("WAYLAND_DISPLAY", server->socket, true);
56 wl_display_run(server->wl_display);
57}