diff options
Diffstat (limited to 'sway')
-rw-r--r-- | sway/desktop/output.c | 7 | ||||
-rw-r--r-- | sway/server.c | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index fe50759a..22ced14e 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -688,6 +688,13 @@ void handle_new_output(struct wl_listener *listener, void *data) { update_output_manager_config(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_output_manager_apply(struct wl_listener *listener, void *data) { struct sway_server *server = wl_container_of(listener, server, output_manager_apply); diff --git a/sway/server.c b/sway/server.c index b50e3ccc..4f46a065 100644 --- a/sway/server.c +++ b/sway/server.c @@ -66,6 +66,9 @@ 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); wlr_xdg_output_manager_v1_create(server->wl_display, root->output_layout); |