From c092f1fe6a742bc79015efe6e485c35f49cbf473 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 4 Jul 2018 13:50:23 +0900 Subject: [PATCH 1/2] startup: move setenv WAYLAND_DISPLAY before config execs We would previously run all config commands without the environment, which would appear to work as our socket name is the default one, but wayland clients would start up in the wrong sway session. (This explains why 'sometimes' my swayidle processes wouldn't die with sway, as they weren't listening to the correct socket) --- sway/main.c | 1 + sway/server.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sway/main.c b/sway/main.c index 124f9fbb7..8b0b8612e 100644 --- a/sway/main.c +++ b/sway/main.c @@ -416,6 +416,7 @@ int main(int argc, char **argv) { security_sanity_check(); config->active = true; + setenv("WAYLAND_DISPLAY", server.socket, true); // Execute commands until there are none left while (config->cmd_queue->length) { char *line = config->cmd_queue->items[0]; diff --git a/sway/server.c b/sway/server.c index 8106f3c86..cd15f454f 100644 --- a/sway/server.c +++ b/sway/server.c @@ -143,7 +143,6 @@ void server_fini(struct sway_server *server) { void server_run(struct sway_server *server) { wlr_log(L_INFO, "Running compositor on wayland display '%s'", server->socket); - setenv("WAYLAND_DISPLAY", server->socket, true); if (!wlr_backend_start(server->backend)) { wlr_log(L_ERROR, "Failed to start backend"); wlr_backend_destroy(server->backend); From 0bd41a0daecfb2da34ea52f6a46b9fc0d162a47a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 4 Jul 2018 15:38:08 +1000 Subject: [PATCH 2/2] Fix focus related damage When you have an unfocused container (so one view is focused_inactive), and you focus any other view in that container, the view with focused_inactive was not damaged. This is because we damaged the previous focus and new focus, but needed to damage the parent of the new focus. --- sway/input/seat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sway/input/seat.c b/sway/input/seat.c index a934d4a80..6c5abcd88 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c @@ -663,7 +663,7 @@ void seat_set_focus_warp(struct sway_seat *seat, } seat_send_focus(container, seat); - container_damage_whole(container); + container_damage_whole(container->parent); } // clean up unfocused empty workspace on new output