diff options
author | 2018-05-01 17:18:20 +1000 | |
---|---|---|
committer | 2018-05-01 17:18:20 +1000 | |
commit | 91f97fc21a0da6022b221d1273e147e647ce5980 (patch) | |
tree | 063cd3e299a7cf6f2aeca70c9019a26d642c558f | |
parent | Merge pull request #1873 from RyanDwyer/remove-arrange-windows (diff) | |
download | sway-91f97fc21a0da6022b221d1273e147e647ce5980.tar.gz sway-91f97fc21a0da6022b221d1273e147e647ce5980.tar.zst sway-91f97fc21a0da6022b221d1273e147e647ce5980.zip |
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.
-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) { | |||
302 | view->swayc = NULL; | 302 | view->swayc = NULL; |
303 | view->surface = NULL; | 303 | view->surface = NULL; |
304 | 304 | ||
305 | arrange_children_of(parent); | 305 | if (parent->type == C_OUTPUT) { |
306 | arrange_output(parent); | ||
307 | } else { | ||
308 | arrange_children_of(parent); | ||
309 | } | ||
306 | } | 310 | } |
307 | 311 | ||
308 | void view_update_position(struct sway_view *view, double ox, double oy) { | 312 | void view_update_position(struct sway_view *view, double ox, double oy) { |