From 7abb4d63e2f8b58e4dd704b34c9fab07bb2f891d Mon Sep 17 00:00:00 2001 From: emersion Date: Sun, 1 Jul 2018 22:55:25 +0100 Subject: Init screencopy manager --- sway/server.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index f5700c09..bd107617 100644 --- a/sway/server.c +++ b/sway/server.c @@ -7,12 +7,13 @@ #include #include #include +#include #include #include #include #include -#include #include +#include #include #include #include @@ -107,6 +108,7 @@ bool server_init(struct sway_server *server) { wlr_linux_dmabuf_create(server->wl_display, renderer); wlr_export_dmabuf_manager_v1_create(server->wl_display); + wlr_screencopy_manager_v1_create(server->wl_display); server->socket = wl_display_add_socket_auto(server->wl_display); if (!server->socket) { -- cgit v1.2.3 From e4bfb3bc98b28cb083b4138a76d88384a33d6e57 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 27 Jun 2018 18:16:49 +0900 Subject: Add idle inhibit unstable v1 support --- sway/server.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index bd107617..3456931c 100644 --- a/sway/server.c +++ b/sway/server.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -63,6 +64,11 @@ bool server_init(struct sway_server *server) { wlr_xdg_output_manager_create(server->wl_display, root_container.sway_root->output_layout); + server->idle_inhibit = wlr_idle_inhibit_v1_create(server->wl_display); + wl_signal_add(&server->idle_inhibit->events.new_inhibitor, + &server->new_idle_inhibitor_v1); + server->new_idle_inhibitor_v1.notify = handle_idle_inhibitor_v1; + server->layer_shell = wlr_layer_shell_create(server->wl_display); wl_signal_add(&server->layer_shell->events.new_surface, &server->layer_shell_surface); -- cgit v1.2.3 From 072b334abc6f065080bf944767bbd53d7a590e47 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sat, 30 Jun 2018 14:09:32 +0900 Subject: idle_inhibit: stop inhibitor when views become invisible --- sway/server.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 3456931c..ee6b7cde 100644 --- a/sway/server.c +++ b/sway/server.c @@ -68,6 +68,7 @@ bool server_init(struct sway_server *server) { wl_signal_add(&server->idle_inhibit->events.new_inhibitor, &server->new_idle_inhibitor_v1); server->new_idle_inhibitor_v1.notify = handle_idle_inhibitor_v1; + wl_list_init(&server->idle_inhibitors_v1); server->layer_shell = wlr_layer_shell_create(server->wl_display); wl_signal_add(&server->layer_shell->events.new_surface, -- cgit v1.2.3 From 71224781c48f98f43f5836de663ef6e01604419c Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Mon, 2 Jul 2018 09:26:57 +0900 Subject: idle_inhibit: move server data to its own struct --- sway/server.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index ee6b7cde..8106f3c8 100644 --- a/sway/server.c +++ b/sway/server.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -23,6 +22,7 @@ // TODO WLR: make Xwayland optional #include "list.h" #include "sway/config.h" +#include "sway/desktop/idle_inhibit_v1.h" #include "sway/input/input-manager.h" #include "sway/server.h" #include "sway/tree/layout.h" @@ -53,7 +53,6 @@ bool server_init(struct sway_server *server) { server->data_device_manager = wlr_data_device_manager_create(server->wl_display); - server->idle = wlr_idle_create(server->wl_display); wlr_screenshooter_create(server->wl_display); wlr_gamma_control_manager_create(server->wl_display); wlr_primary_selection_device_manager_create(server->wl_display); @@ -64,11 +63,9 @@ bool server_init(struct sway_server *server) { wlr_xdg_output_manager_create(server->wl_display, root_container.sway_root->output_layout); - server->idle_inhibit = wlr_idle_inhibit_v1_create(server->wl_display); - wl_signal_add(&server->idle_inhibit->events.new_inhibitor, - &server->new_idle_inhibitor_v1); - server->new_idle_inhibitor_v1.notify = handle_idle_inhibitor_v1; - wl_list_init(&server->idle_inhibitors_v1); + server->idle = wlr_idle_create(server->wl_display); + server->idle_inhibit_manager_v1 = + sway_idle_inhibit_manager_v1_create(server->wl_display, server->idle); server->layer_shell = wlr_layer_shell_create(server->wl_display); wl_signal_add(&server->layer_shell->events.new_surface, -- cgit v1.2.3 From c092f1fe6a742bc79015efe6e485c35f49cbf473 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 4 Jul 2018 13:50:23 +0900 Subject: 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/server.c | 1 - 1 file changed, 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 8106f3c8..cd15f454 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); -- cgit v1.2.3 From 63b4bf500020cf35cebfdce2d73f8e359ff495c2 Mon Sep 17 00:00:00 2001 From: emersion Date: Mon, 9 Jul 2018 22:54:30 +0100 Subject: Update for swaywm/wlroots#1126 --- sway/server.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index cd15f454..1d8eb964 100644 --- a/sway/server.c +++ b/sway/server.c @@ -29,20 +29,20 @@ #include "sway/xwayland.h" bool server_privileged_prepare(struct sway_server *server) { - wlr_log(L_DEBUG, "Preparing Wayland server initialization"); + wlr_log(WLR_DEBUG, "Preparing Wayland server initialization"); server->wl_display = wl_display_create(); server->wl_event_loop = wl_display_get_event_loop(server->wl_display); server->backend = wlr_backend_autocreate(server->wl_display, NULL); if (!server->backend) { - wlr_log(L_ERROR, "Unable to create backend"); + wlr_log(WLR_ERROR, "Unable to create backend"); return false; } return true; } bool server_init(struct sway_server *server) { - wlr_log(L_DEBUG, "Initializing Wayland server"); + wlr_log(WLR_DEBUG, "Initializing Wayland server"); struct wlr_renderer *renderer = wlr_backend_get_renderer(server->backend); assert(renderer); @@ -116,7 +116,7 @@ bool server_init(struct sway_server *server) { server->socket = wl_display_add_socket_auto(server->wl_display); if (!server->socket) { - wlr_log(L_ERROR, "Unable to open wayland socket"); + wlr_log(WLR_ERROR, "Unable to open wayland socket"); wlr_backend_destroy(server->backend); return false; } @@ -141,10 +141,10 @@ void server_fini(struct sway_server *server) { } void server_run(struct sway_server *server) { - wlr_log(L_INFO, "Running compositor on wayland display '%s'", + wlr_log(WLR_INFO, "Running compositor on wayland display '%s'", server->socket); if (!wlr_backend_start(server->backend)) { - wlr_log(L_ERROR, "Failed to start backend"); + wlr_log(WLR_ERROR, "Failed to start backend"); wlr_backend_destroy(server->backend); return; } -- cgit v1.2.3 From 82c978d34b930fc5c81cbc91db772716390809ef Mon Sep 17 00:00:00 2001 From: emersion Date: Fri, 13 Jul 2018 19:29:44 +0100 Subject: Remove orbital screenshooter --- sway/server.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 1d8eb964..42aa2e31 100644 --- a/sway/server.c +++ b/sway/server.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -53,7 +52,6 @@ bool server_init(struct sway_server *server) { server->data_device_manager = wlr_data_device_manager_create(server->wl_display); - wlr_screenshooter_create(server->wl_display); wlr_gamma_control_manager_create(server->wl_display); wlr_primary_selection_device_manager_create(server->wl_display); -- cgit v1.2.3 From 2032f85d94f2f222282b242116b3e827dd458f6c Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 14 Jul 2018 23:14:55 +1000 Subject: Simplify transactions by utilising a dirty flag on containers This PR changes the way we handle transactions to a more simple method. The new method is to mark containers as dirty from low level code (eg. arranging, or container_destroy, and eventually seat_set_focus), then call transaction_commit_dirty which picks up those containers and runs them through a transaction. The old methods of using transactions (arrange_and_commit, or creating one manually) are now no longer possible. The highest-level code (execute_command and view implementation handlers) will call transaction_commit_dirty, so most other code just needs to set containers as dirty. This is done by arranging, but can also be done by calling container_set_dirty. --- sway/server.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 1d8eb964..8566d512 100644 --- a/sway/server.c +++ b/sway/server.c @@ -125,8 +125,7 @@ bool server_init(struct sway_server *server) { if (debug != NULL && strcmp(debug, "txn_timings") == 0) { server->debug_txn_timings = true; } - server->destroying_containers = create_list(); - + server->dirty_containers = create_list(); server->transactions = create_list(); input_manager = input_manager_create(server); @@ -136,7 +135,7 @@ bool server_init(struct sway_server *server) { void server_fini(struct sway_server *server) { // TODO: free sway-specific resources wl_display_destroy(server->wl_display); - list_free(server->destroying_containers); + list_free(server->dirty_containers); list_free(server->transactions); } -- cgit v1.2.3 From ec652866060a178796d6dbb32bf7f0e2101e56c9 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Thu, 19 Jul 2018 01:39:58 -0400 Subject: Fix deferred command handling --- sway/server.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index f904b177..ee71d538 100644 --- a/sway/server.c +++ b/sway/server.c @@ -137,13 +137,19 @@ void server_fini(struct sway_server *server) { list_free(server->transactions); } -void server_run(struct sway_server *server) { - wlr_log(WLR_INFO, "Running compositor on wayland display '%s'", +bool server_start_backend(struct sway_server *server) { + wlr_log(WLR_INFO, "Starting backend on wayland display '%s'", server->socket); if (!wlr_backend_start(server->backend)) { wlr_log(WLR_ERROR, "Failed to start backend"); wlr_backend_destroy(server->backend); - return; + return false; } + return true; +} + +void server_run(struct sway_server *server) { + wlr_log(WLR_INFO, "Running compositor on wayland display '%s'", + server->socket); wl_display_run(server->wl_display); } -- cgit v1.2.3 From 4154234eee1fa86f3a01d2f47b4fa632dcd73644 Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 19 Jul 2018 21:54:46 +0100 Subject: Update for swaywm/wlroots#1148 --- sway/server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index f904b177..bad2b7e6 100644 --- a/sway/server.c +++ b/sway/server.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include #include @@ -108,7 +108,7 @@ bool server_init(struct sway_server *server) { wlr_server_decoration_manager_set_default_mode( deco_manager, WLR_SERVER_DECORATION_MANAGER_MODE_SERVER); - wlr_linux_dmabuf_create(server->wl_display, renderer); + wlr_linux_dmabuf_v1_create(server->wl_display, renderer); wlr_export_dmabuf_manager_v1_create(server->wl_display); wlr_screencopy_manager_v1_create(server->wl_display); -- cgit v1.2.3