             statefulLayout.updateWithChange(windowChange)
         }
 
-        if changingSpace {
-            // The 0.4 is disgustingly tied to the space change animation time.
-            // This should get burned to the ground when space changes don't rely on the mouse click trick.
-            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(UInt64(0.4) * NSEC_PER_SEC)) / Double(NSEC_PER_SEC)) {
-                self.reflow(windowChange)
-            }
-        } else {
-            DispatchQueue.main.async {
-                self.reflow(windowChange)
-            }
+        DispatchQueue.main.async {
+            self.reflow(windowChange)
         }
     }
 
     private func reflow(_ event: Change<Window>) {
-        guard currentSpaceIdentifier != nil &&
-            currentLayoutIndex < layouts.count &&
-            userConfiguration.tilingEnabled &&
-            !isFullscreen
-        else {
+        guard currentSpaceIdentifier != nil && userConfiguration.tilingEnabled && !isFullscreen else {
             return
         }
 
         let windows = (delegate?.activeWindowsForScreenManager(self) ?? [])
-        changingSpace = false
 
         let reflowOperation = currentLayout?.reflow(windows, on: screen)
         reflowOperation?.completionBlock = { [weak self, weak reflowOperation] in

            return
        }

        currentLayoutIndex = layoutIndex
        setNeedsReflowWithWindowChange(.unknown)
    }

    func shrinkMainPane() {

    private var layouts: [Layout<Window>] = []
    private var currentLayoutIndexBySpaceIdentifier: [String: Int] = [:]
    private var layoutsBySpaceIdentifier: [String: [Layout<Window>]] = [:]
    private var currentLayoutIndex: Int
    var currentLayout: Layout<Window>? {
        guard !layouts.isEmpty else {
            return nil
