diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-09-25 08:21:22 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-09-25 08:21:22 +1000 |
commit | b1a0e95e8e6ecf66542cc62e6109949de59afb5e (patch) | |
tree | 9d414feadd74c7e015fe9ca4064d9a185de42cbe /sway | |
parent | a032925ae7667e917f2bd8d1b77de97b400b3bf7 (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.
Diffstat (limited to 'sway')
-rw-r--r-- | sway/tree/container.c | 3 |
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); |