From f214935c5296a154da0dba1da95a78324d71fffd Mon Sep 17 00:00:00 2001
From: Fabian Homborg <FHomborg@gmail.com>
Date: Sat, 17 Aug 2013 18:34:29 +0200
Subject: [PATCH] Unset keepBelow on client removing for floating windows

(Also removes superfluous keepBelow setting)
---
 contents/code/tilelist.js      | 2 ++
 contents/code/tilingmanager.js | 4 ----
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/contents/code/tilelist.js b/contents/code/tilelist.js
index 4d68a56..632834b 100644
--- a/contents/code/tilelist.js
+++ b/contents/code/tilelist.js
@@ -172,6 +172,8 @@ TileList.prototype._onClientRemoved = function(client) {
     if (!(tileIndex >= 0 && tileIndex < this.tiles.length)) {
         return;
     }
+	// Unset keepBelow because we set it when tiling
+	client.keepBelow = false;
     // Remove the client from its tile
     var tile = this.tiles[tileIndex];
     if (tile.clients.length == 1) {
diff --git a/contents/code/tilingmanager.js b/contents/code/tilingmanager.js
index 88921e9..68dd5fa 100644
--- a/contents/code/tilingmanager.js
+++ b/contents/code/tilingmanager.js
@@ -167,16 +167,13 @@ function TilingManager() {
 							 return;
 						 }
 						 print("Toggling Floating for ", client.resourceClass.toString());
-						 // FIXME: This sometimes retains value!
 						 client.tiling_floating = !client.tiling_floating;
 						 print(client.tiling_floating);
 						 if (client.tiling_floating == true) {
 							 self.tiles._onClientRemoved(client);
 						 } else {
 							 self.tiles.addClient(client);
-							 client.keepBelow = true;
 						 }
-						 self.tiles.retile();
 					 });
     registerShortcut("Switch Focus Left",
                      "Switch Focus Left",
@@ -243,7 +240,6 @@ function TilingManager() {
 					self.tiles._onClientRemoved(client);
 				} else {
 					self.tiles.addClient(client);
-					client.keepBelow = true;
 				}
 				self.tiles.retile();
 			}
-- 
GitLab