From b1a0e95e8e6ecf66542cc62e6109949de59afb5e Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 25 Sep 2018 08:21:22 +1000 Subject: [PATCH] Fix crash when disconnecting output If the output being disconnected contains views, and the views are being relocated to another output of a different size, a transaction must occur to reconfigure them. This means by the time container_discover_outputs is called, the output is already disabled and wlr_output is NULL. I considered making it check output->wlr_output, but output->enabled should work just as well and is more descriptive. --- sway/tree/container.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sway/tree/container.c b/sway/tree/container.c index 53b127b7..329145cf 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -985,7 +985,8 @@ void container_discover_outputs(struct sway_container *con) { } } struct sway_output *new_output = container_get_effective_output(con); - double old_scale = old_output ? old_output->wlr_output->scale : -1; + double old_scale = old_output && old_output->enabled ? + old_output->wlr_output->scale : -1; double new_scale = new_output ? new_output->wlr_output->scale : -1; if (old_scale != new_scale) { container_update_title_textures(con);