             var w = CGFloat(0)
             var h = CGFloat(0)
             for i in 0..<subviews.count {
-                let sz1 = subviews[i].sizeThatFits(sz)
+                let sz1 = subviews[i].hidden ? CGSize.zero : subviews[i].sizeThatFits(sz)
                 w += sz1.width
                 h = max(sz1.height, h)
             }

                let fsz = v.sizeThatFits(fit)
                let w = fsz.width
                let p1 = {
                    switch p {
                    case .rigid:    return SilentBoxPartition.rigid(length: w)
                    case .soft:     return SilentBoxPartition.soft(proportion: w)
                    }
                }() as SilentBoxPartition
                ps1.append(p1)

                let fsz = v.sizeThatFits(fit)
                let h = fsz.height
                let p1 = {
                    guard v.hidden == false else { return .rigid(length: 0) }
                    switch p {
                    case .rigid:    return .rigid(length: h)
                    case .soft:     return .soft(proportion: h)
                    }
                }() as SilentBoxPartition
                ps1.append(p1)
