From e64200ac486420e8b087910cf770b84b6f9d1fb9 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sat, 17 Oct 2026 09:40:21 -0700 Subject: [PATCH] garbage text --- mac/Sources/Byre/MarkdownView.swift | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mac/Sources/Byre/MarkdownView.swift b/mac/Sources/Byre/MarkdownView.swift index 1ec3e49..a75870b 100644 --- a/mac/Sources/Byre/MarkdownView.swift +++ b/mac/Sources/Byre/MarkdownView.swift @@ -404,6 +404,7 @@ private struct FlowText: NSViewRepresentable { v.isHorizontallyResizable = false v.textContainerInset = .zero v.textContainer!.lineFragmentPadding = 0 + v.textContainer!.widthTracksTextView = true v.linkTextAttributes = [.cursor: NSCursor.pointingHand] v.delegate = context.coordinator return v @@ -423,10 +424,14 @@ private struct FlowText: NSViewRepresentable { func sizeThatFits(_ proposal: ProposedViewSize, nsView v: FlowTextView, context: Context) -> CGSize? { let width = proposal.width.flatMap { $0.isFinite ? $0 : nil } - let container = v.textContainer! - container.size = CGSize(width: width ?? .greatestFiniteMagnitude, height: .greatestFiniteMagnitude) - v.layoutManager!.ensureLayout(for: container) - let used = v.layoutManager!.usedRect(for: container) + let storage = NSTextStorage(attributedString: text) + let layout = NSLayoutManager() + let container = NSTextContainer(size: CGSize(width: width ?? .greatestFiniteMagnitude, height: .greatestFiniteMagnitude)) + container.lineFragmentPadding = 0 + layout.addTextContainer(container) + storage.addLayoutManager(layout) + layout.ensureLayout(for: container) + let used = layout.usedRect(for: container) return CGSize(width: width ?? ceil(used.width), height: ceil(used.height)) }