From ad1a96160bc63cddeb35f1167b18a870ef00f050 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 6 Feb 2023 17:25:27 +0800 Subject: [PATCH] TDKCandidates // Fix calculation mistakes in horizontal layout. --- .../Sources/CandidateWindow/CandidatePool.swift | 5 ++--- .../VwrCandidateTDK/VwrCandidateHorizontal.swift | 9 +++------ .../VwrCandidateHorizontalBackports.swift | 9 +++------ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/CandidatePool.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/CandidatePool.swift index d0605cf2..34a1a194 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/CandidatePool.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/CandidatePool.swift @@ -31,10 +31,9 @@ public struct CandidatePool { // MARK: - 動態變數 - public var maxRowWidth: Int { Int(Double(maxRowCapacity + 3) * 2) * Int(ceil(CandidateCellData.unifiedSize)) } + public var maxRowWidth: Int { Int(ceil((Double(maxRowCapacity + 3) * 2 - 0.5) * CandidateCellData.unifiedSize)) } public var maxWindowWidth: Double { - let testCell = CandidateCellData(key: "XX", displayedText: "XX", isSelected: false) - return Double(maxRowCapacity) * (testCell.minWidthToDrawInSwiftUI + ceil(CandidateCellData.unifiedSize * 0.5)) + Double(maxRowCapacity) * (blankCell.minWidthToDrawInSwiftUI + ceil(CandidateCellData.unifiedSize * 0.5)) } public var currentLineNumber: Int { diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK/VwrCandidateHorizontal.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK/VwrCandidateHorizontal.swift index c9aafae4..7bae386a 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK/VwrCandidateHorizontal.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK/VwrCandidateHorizontal.swift @@ -66,10 +66,7 @@ public struct VwrCandidateHorizontal: View { ForEach(Array(thePool.candidateLines[rowIndex]), id: \.self) { currentCandidate in currentCandidate.attributedStringForSwiftUI.fixedSize() .contentShape(Rectangle()) - .frame( - maxWidth: .infinity, - alignment: .topLeading - ) + .frame(alignment: .topLeading) .onTapGesture { didSelectCandidateAt(currentCandidate.index) } .contextMenu { if controller?.delegate?.isCandidateContextMenuEnabled ?? false { @@ -91,7 +88,7 @@ public struct VwrCandidateHorizontal: View { } } } - Spacer(minLength: Double.infinity) + Spacer() }.frame( minWidth: 0, maxWidth: .infinity, @@ -104,7 +101,7 @@ public struct VwrCandidateHorizontal: View { HStack(spacing: 0) { thePool.blankCell.attributedStringForSwiftUI .contentShape(Rectangle()) - .frame(maxWidth: .infinity, alignment: .topLeading) + .frame(alignment: .topLeading) Spacer() }.frame( minWidth: 0, diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Backports/VwrCandidateHorizontalBackports.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Backports/VwrCandidateHorizontalBackports.swift index 7461c87e..6d46c7df 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Backports/VwrCandidateHorizontalBackports.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Backports/VwrCandidateHorizontalBackports.swift @@ -67,10 +67,7 @@ public struct VwrCandidateHorizontalBackports: View { ForEach(Array(thePool.candidateLines[rowIndex]), id: \.self) { currentCandidate in currentCandidate.attributedStringForSwiftUIBackports.fixedSize() .contentShape(Rectangle()) - .frame( - maxWidth: .infinity, - alignment: .topLeading - ) + .frame(alignment: .topLeading) .onTapGesture { didSelectCandidateAt(currentCandidate.index) } .contextMenu { if controller?.delegate?.isCandidateContextMenuEnabled ?? false { @@ -92,7 +89,7 @@ public struct VwrCandidateHorizontalBackports: View { } } } - Spacer(minLength: Double.infinity) + Spacer() }.frame( minWidth: 0, maxWidth: .infinity, @@ -105,7 +102,7 @@ public struct VwrCandidateHorizontalBackports: View { HStack(spacing: 0) { thePool.blankCell.attributedStringForSwiftUIBackports .contentShape(Rectangle()) - .frame(maxWidth: .infinity, alignment: .topLeading) + .frame(alignment: .topLeading) Spacer() }.frame( minWidth: 0,