diff options
Diffstat (limited to 'sway')
| -rw-r--r-- | sway/desktop/output.c | 12 | ||||
| -rw-r--r-- | sway/server.c | 8 | ||||
| -rw-r--r-- | sway/tree/container.c | 2 | 
3 files changed, 11 insertions, 11 deletions
| diff --git a/sway/desktop/output.c b/sway/desktop/output.c index a650665f..16183870 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -243,8 +243,8 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {  	soutput->last_frame = now;  } -void output_add_notify(struct wl_listener *listener, void *data) { -	struct sway_server *server = wl_container_of(listener, server, output_add); +void handle_new_output(struct wl_listener *listener, void *data) { +	struct sway_server *server = wl_container_of(listener, server, new_output);  	struct wlr_output *wlr_output = data;  	wlr_log(L_DEBUG, "New output %p: %s", wlr_output, wlr_output->name); @@ -269,12 +269,14 @@ void output_add_notify(struct wl_listener *listener, void *data) {  	sway_input_manager_configure_xcursor(input_manager); -	output->frame.notify = output_frame_notify;  	wl_signal_add(&wlr_output->events.frame, &output->frame); +	output->frame.notify = output_frame_notify; + +	wl_signal_add(&wlr_output->events.destroy, &output->output_destroy); +	output->output_destroy.notify = handle_output_destroy;  } -void output_remove_notify(struct wl_listener *listener, void *data) { -	struct sway_server *server = wl_container_of(listener, server, output_remove); +void handle_output_destroy(struct wl_listener *listener, void *data) {  	struct wlr_output *wlr_output = data;  	wlr_log(L_DEBUG, "Output %p %s removed", wlr_output, wlr_output->name); diff --git a/sway/server.c b/sway/server.c index b5eb510b..0753d37e 100644 --- a/sway/server.c +++ b/sway/server.c @@ -48,12 +48,8 @@ bool server_init(struct sway_server *server) {  	server->data_device_manager =  		wlr_data_device_manager_create(server->wl_display); -	server->output_add.notify = output_add_notify; -	wl_signal_add(&server->backend->events.output_add, &server->output_add); - -	server->output_remove.notify = output_remove_notify; -	wl_signal_add(&server->backend->events.output_remove, -			&server->output_remove); +	server->new_output.notify = handle_new_output; +	wl_signal_add(&server->backend->events.new_output, &server->new_output);  	server->xdg_shell_v6 = wlr_xdg_shell_v6_create(server->wl_display);  	wl_signal_add(&server->xdg_shell_v6->events.new_surface, diff --git a/sway/tree/container.c b/sway/tree/container.c index 48aabd86..1a468c19 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -235,6 +235,8 @@ swayc_t *destroy_output(swayc_t *output) {  		}  	} +	wl_list_remove(&output->sway_output->output_destroy.link); +  	wlr_log(L_DEBUG, "OUTPUT: Destroying output '%s'", output->name);  	free_swayc(output); | 
