aboutsummaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-07-19 14:09:19 -0700
committerLibravatar GitHub <noreply@github.com>2018-07-19 14:09:19 -0700
commit3483f1ea1ac66f261452f4cb4fea5f6b342b41d1 (patch)
treea81ef9a4d873de4a886ee414872b496838a61160 /sway
parentUpdate for swaywm/wlroots#1148 (diff)
parentMerge pull request #2310 from RyanDwyer/assign-output (diff)
downloadsway-3483f1ea1ac66f261452f4cb4fea5f6b342b41d1.tar.gz
sway-3483f1ea1ac66f261452f4cb4fea5f6b342b41d1.tar.zst
sway-3483f1ea1ac66f261452f4cb4fea5f6b342b41d1.zip
Merge branch 'master' into update-wlroots-1148
Diffstat (limited to 'sway')
-rw-r--r--sway/config.c4
-rw-r--r--sway/main.c9
-rw-r--r--sway/server.c12
-rw-r--r--sway/tree/view.c6
4 files changed, 24 insertions, 7 deletions
diff --git a/sway/config.c b/sway/config.c
index c620e4c7..00500812 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -649,7 +649,6 @@ bool read_config(FILE *file, struct sway_config *config) {
649 } else { 649 } else {
650 res = config_command(expanded); 650 res = config_command(expanded);
651 } 651 }
652 free(expanded);
653 switch(res->status) { 652 switch(res->status) {
654 case CMD_FAILURE: 653 case CMD_FAILURE:
655 case CMD_INVALID: 654 case CMD_INVALID:
@@ -660,7 +659,7 @@ bool read_config(FILE *file, struct sway_config *config) {
660 659
661 case CMD_DEFER: 660 case CMD_DEFER:
662 wlr_log(WLR_DEBUG, "Deferring command `%s'", line); 661 wlr_log(WLR_DEBUG, "Deferring command `%s'", line);
663 list_add(config->cmd_queue, strdup(line)); 662 list_add(config->cmd_queue, strdup(expanded));
664 break; 663 break;
665 664
666 case CMD_BLOCK_COMMANDS: 665 case CMD_BLOCK_COMMANDS:
@@ -693,6 +692,7 @@ bool read_config(FILE *file, struct sway_config *config) {
693 sizeof(config->handler_context)); 692 sizeof(config->handler_context));
694 default:; 693 default:;
695 } 694 }
695 free(expanded);
696 free(line); 696 free(line);
697 free_cmd_results(res); 697 free_cmd_results(res);
698 } 698 }
diff --git a/sway/main.c b/sway/main.c
index 1a55b519..a20f1dac 100644
--- a/sway/main.c
+++ b/sway/main.c
@@ -429,9 +429,16 @@ int main(int argc, char **argv) {
429 429
430 security_sanity_check(); 430 security_sanity_check();
431 431
432 config->active = true;
433 setenv("WAYLAND_DISPLAY", server.socket, true); 432 setenv("WAYLAND_DISPLAY", server.socket, true);
433 if (!terminate_request) {
434 if (!server_start_backend(&server)) {
435 sway_terminate(EXIT_FAILURE);
436 }
437 }
438
439 config->active = true;
434 // Execute commands until there are none left 440 // Execute commands until there are none left
441 wlr_log(WLR_DEBUG, "Running deferred commands");
435 while (config->cmd_queue->length) { 442 while (config->cmd_queue->length) {
436 char *line = config->cmd_queue->items[0]; 443 char *line = config->cmd_queue->items[0];
437 struct cmd_results *res = execute_command(line, NULL); 444 struct cmd_results *res = execute_command(line, NULL);
diff --git a/sway/server.c b/sway/server.c
index bad2b7e6..89dfbf8c 100644
--- a/sway/server.c
+++ b/sway/server.c
@@ -137,13 +137,19 @@ void server_fini(struct sway_server *server) {
137 list_free(server->transactions); 137 list_free(server->transactions);
138} 138}
139 139
140void server_run(struct sway_server *server) { 140bool server_start_backend(struct sway_server *server) {
141 wlr_log(WLR_INFO, "Running compositor on wayland display '%s'", 141 wlr_log(WLR_INFO, "Starting backend on wayland display '%s'",
142 server->socket); 142 server->socket);
143 if (!wlr_backend_start(server->backend)) { 143 if (!wlr_backend_start(server->backend)) {
144 wlr_log(WLR_ERROR, "Failed to start backend"); 144 wlr_log(WLR_ERROR, "Failed to start backend");
145 wlr_backend_destroy(server->backend); 145 wlr_backend_destroy(server->backend);
146 return; 146 return false;
147 } 147 }
148 return true;
149}
150
151void server_run(struct sway_server *server) {
152 wlr_log(WLR_INFO, "Running compositor on wayland display '%s'",
153 server->socket);
148 wl_display_run(server->wl_display); 154 wl_display_run(server->wl_display);
149} 155}
diff --git a/sway/tree/view.c b/sway/tree/view.c
index fc31699c..7881e6d7 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -564,7 +564,11 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface) {
564 } 564 }
565 focus = seat_get_focus_inactive(seat, workspace); 565 focus = seat_get_focus_inactive(seat, workspace);
566 } else { 566 } else {
567 // TODO: CT_ASSIGN_OUTPUT 567 // CT_ASSIGN_OUTPUT
568 struct sway_container *output = output_by_name(criteria->target);
569 if (output) {
570 focus = seat_get_focus_inactive(seat, output);
571 }
568 } 572 }
569 } 573 }
570 // If we're about to launch the view into the floating container, then 574 // If we're about to launch the view into the floating container, then