aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2018-09-25 08:21:22 +1000
committerRyan Dwyer <ryandwyer1@gmail.com>2018-09-25 08:21:22 +1000
commitb1a0e95e8e6ecf66542cc62e6109949de59afb5e (patch)
tree9d414feadd74c7e015fe9ca4064d9a185de42cbe
parenta032925ae7667e917f2bd8d1b77de97b400b3bf7 (diff)
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.
-rw-r--r--sway/tree/container.c3
1 files changed, 2 insertions, 1 deletions
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);