aboutsummaryrefslogtreecommitdiff
path: root/sway/tree
diff options
context:
space:
mode:
Diffstat (limited to 'sway/tree')
-rw-r--r--sway/tree/container.c10
-rw-r--r--sway/tree/view.c4
2 files changed, 12 insertions, 2 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index 9e70da09..d0d26631 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -204,9 +204,17 @@ static struct sway_container *container_workspace_destroy(
}
}
- free(workspace->sway_workspace);
+ struct sway_workspace *sway_workspace = workspace->sway_workspace;
+
+ // This emits the destroy event and also destroys the swayc.
_container_destroy(workspace);
+ // Clean up the floating container
+ sway_workspace->floating->parent = NULL;
+ _container_destroy(sway_workspace->floating);
+
+ free(sway_workspace);
+
if (output) {
output_damage_whole(output->sway_output);
}
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 79441d49..c9c82405 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -790,8 +790,10 @@ void view_update_title(struct sway_view *view, bool force) {
view->swayc->formatted_title = NULL;
}
container_calculate_title_height(view->swayc);
- container_update_title_textures(view->swayc);
config_update_font_height(false);
+
+ // Update title after the global font height is updated
+ container_update_title_textures(view->swayc);
}
static bool find_by_mark_iterator(struct sway_container *con,