From a729bda17fb25afcf043dd740e304b8c2c1302a1 Mon Sep 17 00:00:00 2001
From: Brian Ashworth <bosrsf04@gmail.com>
Date: Sun, 10 Mar 2019 18:43:22 -0400
Subject: [PATCH] fullscreen: init floating on disable without size

If a container gets mapped as fullscreen and set to floating by
criteria, the size and location are never set for the floating
container. This adds a check in container_fullscreen_disable for a
width or height of 0 and calls container_init_floating
---
 sway/tree/container.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sway/tree/container.c b/sway/tree/container.c
index a6142193f..93cff7ff5 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -984,6 +984,13 @@ void container_fullscreen_disable(struct sway_container *con) {
 		root->fullscreen_global = NULL;
 	}
 
+	// If the container was mapped as fullscreen and set as floating by
+	// criteria, it needs to be reinitialized as floating to get the proper
+	// size and location
+	if (container_is_floating(con) && (con->width == 0 || con->height == 0)) {
+		container_init_floating(con);
+	}
+
 	con->fullscreen_mode = FULLSCREEN_NONE;
 	container_end_mouse_operation(con);
 	ipc_event_window(con, "fullscreen_mode");