diff options
Diffstat (limited to 'sway/tree')
-rw-r--r-- | sway/tree/container.c | 10 | ||||
-rw-r--r-- | sway/tree/view.c | 4 |
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, |