From 6baee5cb687a7ef9a67bf7cf64b8ea0fd20edcbf Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Tue, 3 Sep 2024 15:39:39 +0200 Subject: [PATCH] (desktop|tree)/output: Do not use layout listener to arrange Output layout changes originate from the centralized modeset infrastructure and request_state which already takes care of arranging and updating outputs as needed. (cherry picked from af28ac04a4d523aecd74dacc94a91f7d9e537982) --- include/sway/output.h | 1 - include/sway/server.h | 1 - include/sway/tree/root.h | 2 -- sway/desktop/output.c | 7 ------- sway/server.c | 3 --- sway/tree/root.c | 10 ---------- 6 files changed, 24 deletions(-) diff --git a/include/sway/output.h b/include/sway/output.h index a9e697d8..2a92be99 100644 --- a/include/sway/output.h +++ b/include/sway/output.h @@ -136,7 +136,6 @@ enum sway_container_layout output_get_default_layout( enum wlr_direction opposite_direction(enum wlr_direction d); -void handle_output_layout_change(struct wl_listener *listener, void *data); void handle_gamma_control_set_gamma(struct wl_listener *listener, void *data); diff --git a/include/sway/server.h b/include/sway/server.h index 460f9e17..ccf4a9cc 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -45,7 +45,6 @@ struct sway_server { struct sway_input_manager *input; struct wl_listener new_output; - struct wl_listener output_layout_change; struct wl_listener renderer_lost; struct wlr_idle_notifier_v1 *idle_notifier_v1; diff --git a/include/sway/tree/root.h b/include/sway/tree/root.h index 7de0abcd..10d9ea98 100644 --- a/include/sway/tree/root.h +++ b/include/sway/tree/root.h @@ -16,8 +16,6 @@ struct sway_root { struct sway_node node; struct wlr_output_layout *output_layout; - struct wl_listener output_layout_change; - // scene node layout: // - root // - staging diff --git a/sway/desktop/output.c b/sway/desktop/output.c index aaa8c087..5aa46dde 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -578,13 +578,6 @@ void handle_new_output(struct wl_listener *listener, void *data) { request_modeset(server); } -void handle_output_layout_change(struct wl_listener *listener, - void *data) { - struct sway_server *server = - wl_container_of(listener, server, output_layout_change); - update_output_manager_config(server); -} - void handle_gamma_control_set_gamma(struct wl_listener *listener, void *data) { struct sway_server *server = wl_container_of(listener, server, gamma_control_set_gamma); diff --git a/sway/server.c b/sway/server.c index 2922cc10..12492224 100644 --- a/sway/server.c +++ b/sway/server.c @@ -272,9 +272,6 @@ bool server_init(struct sway_server *server) { server->new_output.notify = handle_new_output; wl_signal_add(&server->backend->events.new_output, &server->new_output); - server->output_layout_change.notify = handle_output_layout_change; - wl_signal_add(&root->output_layout->events.change, - &server->output_layout_change); server->xdg_output_manager_v1 = wlr_xdg_output_manager_v1_create(server->wl_display, root->output_layout); diff --git a/sway/tree/root.c b/sway/tree/root.c index 20fcfa59..19d072b5 100644 --- a/sway/tree/root.c +++ b/sway/tree/root.c @@ -19,12 +19,6 @@ struct sway_root *root; -static void output_layout_handle_change(struct wl_listener *listener, - void *data) { - arrange_root(); - transaction_commit_dirty(); -} - struct sway_root *root_create(struct wl_display *wl_display) { struct sway_root *root = calloc(1, sizeof(struct sway_root)); if (!root) { @@ -81,14 +75,10 @@ struct sway_root *root_create(struct wl_display *wl_display) { root->non_desktop_outputs = create_list(); root->scratchpad = create_list(); - root->output_layout_change.notify = output_layout_handle_change; - wl_signal_add(&root->output_layout->events.change, - &root->output_layout_change); return root; } void root_destroy(struct sway_root *root) { - wl_list_remove(&root->output_layout_change.link); list_free(root->scratchpad); list_free(root->non_desktop_outputs); list_free(root->outputs);