From 3e19cb98b4d5a989b7c85dd39a6845a88884396e Mon Sep 17 00:00:00 2001 From: Erik Reider Date: Thu, 30 Mar 2023 17:20:01 +0200 Subject: [PATCH 1/4] Fix damage-ring bounds not being set --- sway/desktop/output.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 09fc64627c..2be2c06703 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -825,6 +825,10 @@ static void update_output_manager_config(struct sway_server *server) { config_head->state.x = output_box.x; config_head->state.y = output_box.y; } + + int width, height; + wlr_output_transformed_resolution(output->wlr_output, &width, &height); + wlr_damage_ring_set_bounds(&output->damage_ring, width, height); } wlr_output_manager_v1_set_configuration(server->output_manager_v1, config); From 21a57140b635b00d9386c13a94fa3e3c663329f9 Mon Sep 17 00:00:00 2001 From: Erik Reider <35975961+ErikReider@users.noreply.github.com> Date: Wed, 5 Apr 2023 20:46:54 +0200 Subject: [PATCH 2/4] Moved bounds logic into handle_new_output --- sway/desktop/output.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 2be2c06703..a5262f743d 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -826,9 +826,6 @@ static void update_output_manager_config(struct sway_server *server) { config_head->state.y = output_box.y; } - int width, height; - wlr_output_transformed_resolution(output->wlr_output, &width, &height); - wlr_damage_ring_set_bounds(&output->damage_ring, width, height); } wlr_output_manager_v1_set_configuration(server->output_manager_v1, config); @@ -1031,6 +1028,15 @@ void handle_new_output(struct wl_listener *listener, void *data) { transaction_commit_dirty(); + struct sway_output *tmp_output; + wl_list_for_each(tmp_output, &root->all_outputs, link) { + if (tmp_output == root->fallback_output) { + continue; + } + int width, height; + wlr_output_transformed_resolution(tmp_output->wlr_output, &width, &height); + wlr_damage_ring_set_bounds(&tmp_output->damage_ring, width, height); + } update_output_manager_config(server); } From 2947757c89398c349692c85c8a38ebf5412911e6 Mon Sep 17 00:00:00 2001 From: Erik Reider <35975961+ErikReider@users.noreply.github.com> Date: Wed, 5 Apr 2023 20:57:13 +0200 Subject: [PATCH 3/4] Only set bounds for the current monitor --- sway/desktop/output.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/sway/desktop/output.c b/sway/desktop/output.c index a5262f743d..cad16160e3 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -1000,9 +1000,6 @@ void handle_new_output(struct wl_listener *listener, void *data) { } output->server = server; wlr_damage_ring_init(&output->damage_ring); - int width, height; - wlr_output_transformed_resolution(output->wlr_output, &width, &height); - wlr_damage_ring_set_bounds(&output->damage_ring, width, height); wl_signal_add(&wlr_output->events.destroy, &output->destroy); output->destroy.notify = handle_destroy; @@ -1028,15 +1025,9 @@ void handle_new_output(struct wl_listener *listener, void *data) { transaction_commit_dirty(); - struct sway_output *tmp_output; - wl_list_for_each(tmp_output, &root->all_outputs, link) { - if (tmp_output == root->fallback_output) { - continue; - } - int width, height; - wlr_output_transformed_resolution(tmp_output->wlr_output, &width, &height); - wlr_damage_ring_set_bounds(&tmp_output->damage_ring, width, height); - } + int width, height; + wlr_output_transformed_resolution(output->wlr_output, &width, &height); + wlr_damage_ring_set_bounds(&output->damage_ring, width, height); update_output_manager_config(server); } From fa4aa79cc7b1718c84c5c8a20db9f34d268d2664 Mon Sep 17 00:00:00 2001 From: Erik Reider <35975961+ErikReider@users.noreply.github.com> Date: Wed, 5 Apr 2023 21:03:34 +0200 Subject: [PATCH 4/4] Fixed nit --- sway/desktop/output.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sway/desktop/output.c b/sway/desktop/output.c index cad16160e3..43cd70d019 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -825,7 +825,6 @@ static void update_output_manager_config(struct sway_server *server) { config_head->state.x = output_box.x; config_head->state.y = output_box.y; } - } wlr_output_manager_v1_set_configuration(server->output_manager_v1, config);