diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-05-01 17:18:20 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-05-01 17:18:20 +1000 |
commit | 91f97fc21a0da6022b221d1273e147e647ce5980 (patch) | |
tree | 063cd3e299a7cf6f2aeca70c9019a26d642c558f /sway/tree | |
parent | b84dfa794c4bc24d3338995cf89fb4864ab63e99 (diff) | |
download | sway-91f97fc21a0da6022b221d1273e147e647ce5980.tar.xz |
Fix segfault in view_unmap()
If the last remaining view on a workspace is unmapped and the workspace
is not visible, parent will be a C_OUTPUT. Call the arrange_output()
function in this case.
Diffstat (limited to 'sway/tree')
-rw-r--r-- | sway/tree/view.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c index e0aa6c0c..519c3c78 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -302,7 +302,11 @@ void view_unmap(struct sway_view *view) { view->swayc = NULL; view->surface = NULL; - arrange_children_of(parent); + if (parent->type == C_OUTPUT) { + arrange_output(parent); + } else { + arrange_children_of(parent); + } } void view_update_position(struct sway_view *view, double ox, double oy) { |