aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/container.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-25 08:21:22 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-25 08:21:22 +1000
commitb1a0e95e8e6ecf66542cc62e6109949de59afb5e (patch)
tree9d414feadd74c7e015fe9ca4064d9a185de42cbe /sway/tree/container.c
parentMerge pull request #2701 from RedSoxFan/input-wildcard (diff)
downloadsway-b1a0e95e8e6ecf66542cc62e6109949de59afb5e.tar.gz
sway-b1a0e95e8e6ecf66542cc62e6109949de59afb5e.tar.zst
sway-b1a0e95e8e6ecf66542cc62e6109949de59afb5e.zip
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/tree/container.c')
-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) {
985 } 985 }
986 } 986 }
987 struct sway_output *new_output = container_get_effective_output(con); 987 struct sway_output *new_output = container_get_effective_output(con);
988 double old_scale = old_output ? old_output->wlr_output->scale : -1; 988 double old_scale = old_output && old_output->enabled ?
989 old_output->wlr_output->scale : -1;
989 double new_scale = new_output ? new_output->wlr_output->scale : -1; 990 double new_scale = new_output ? new_output->wlr_output->scale : -1;
990 if (old_scale != new_scale) { 991 if (old_scale != new_scale) {
991 container_update_title_textures(con); 992 container_update_title_textures(con);