From 82fd30668ea101a18a5c737b52aee25dedf414c7 Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Tue, 20 Feb 2024 20:12:20 +0100 Subject: [PATCH] fix: adjusted sensors portal width per row (#1819) --- Kit/extensions.swift | 4 ++++ Modules/Sensors/portal.swift | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) 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)