From 6a26b499a42412ed453706a436e2f8649a358954 Mon Sep 17 00:00:00 2001
From: Ryan Dwyer <ryandwyer1@gmail.com>
Date: Fri, 17 Aug 2018 16:23:37 +1000
Subject: [PATCH] Attempt to reap old tiling parent when floating a container

---
 sway/tree/container.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sway/tree/container.c b/sway/tree/container.c
index eb06edc2..db780270 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -1030,12 +1030,13 @@ void container_set_floating(struct sway_container *container, bool enable) {
 	struct sway_container *workspace = container_parent(container, C_WORKSPACE);
 
 	if (enable) {
-		container_remove_child(container);
+		struct sway_container *old_parent = container_remove_child(container);
 		container_add_child(workspace->sway_workspace->floating, container);
 		container_init_floating(container);
 		if (container->type == C_VIEW) {
 			view_set_tiled(container->sway_view, false);
 		}
+		container_reap_empty(old_parent);
 	} else {
 		// Returning to tiled
 		if (container->scratchpad) {