diff --git a/Kit/extensions.swift b/Kit/extensions.swift index 02221b72..d4c39775 100644 --- a/Kit/extensions.swift +++ b/Kit/extensions.swift @@ -484,6 +484,10 @@ public class ScrollableStackView: NSView { private let clipView: NSClipView = NSClipView() private let scrollView: NSScrollView = NSScrollView() + public var scrollWidth: CGFloat? { + self.scrollView.verticalScroller?.frame.size.width + } + public init(frame: NSRect = NSRect.zero, orientation: NSUserInterfaceLayoutOrientation = .vertical) { super.init(frame: frame) diff --git a/Modules/Sensors/portal.swift b/Modules/Sensors/portal.swift index 18ed6ef7..9927b6a4 100644 --- a/Modules/Sensors/portal.swift +++ b/Modules/Sensors/portal.swift @@ -71,7 +71,10 @@ public class Portal: NSStackView, Portal_p { self.list = [:] } - let width: CGFloat = self.frame.width - self.edgeInsets.left - self.edgeInsets.right - Constants.Popup.margins + var width: CGFloat = self.frame.width - self.edgeInsets.left - self.edgeInsets.right + if list.count >= 4 { + width -= self.container.scrollWidth ?? Constants.Popup.margins + } list.forEach { s in let v = ValueSensorView(s, width: width, callback: {}) self.container.stackView.addArrangedSubview(v)