Skip to content

Commit 7cb79eb

Browse files
authored
Accounted for text container insets when rendering list numbers/bullets (#185)
1 parent 93ba6ea commit 7cb79eb

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

Diff for: Proton/Sources/Swift/Core/LayoutManager.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,8 @@ class LayoutManager: NSLayoutManager {
222222

223223
private func rectForBullet(markerSize: CGSize, rect: CGRect, indent: CGFloat, yOffset: CGFloat) -> CGRect {
224224
let topInset = layoutManagerDelegate?.textContainerInset.top ?? 0
225-
let spacerRect = CGRect(origin: CGPoint(x: rect.minX, y: rect.minY + topInset), size: CGSize(width: indent, height: rect.height))
225+
let leftInset = layoutManagerDelegate?.textContainerInset.left ?? 0
226+
let spacerRect = CGRect(origin: CGPoint(x: rect.minX + leftInset, y: rect.minY + topInset), size: CGSize(width: indent, height: rect.height))
226227
let scaleFactor = markerSize.height / spacerRect.height
227228
var markerSizeToUse = markerSize
228229
// Resize maintaining aspect ratio if bullet height is more than available line height
@@ -236,7 +237,8 @@ class LayoutManager: NSLayoutManager {
236237

237238
private func rectForNumberedList(markerSize: CGSize, rect: CGRect, indent: CGFloat, yOffset: CGFloat) -> CGRect {
238239
let topInset = layoutManagerDelegate?.textContainerInset.top ?? 0
239-
let spacerRect = CGRect(origin: CGPoint(x: rect.minX, y: rect.minY + topInset), size: CGSize(width: indent, height: rect.height))
240+
let leftInset = layoutManagerDelegate?.textContainerInset.left ?? 0
241+
let spacerRect = CGRect(origin: CGPoint(x: rect.minX + leftInset, y: rect.minY + topInset), size: CGSize(width: indent, height: rect.height))
240242

241243
let scaleFactor = markerSize.height / spacerRect.height
242244
var markerSizeToUse = markerSize

Diff for: Proton/Tests/Editor/EditorListsSnapshotTests.swift

+1
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ class EditorListsSnapshotTests: SnapshotTestCase {
308308

309309
let viewController = EditorTestViewController()
310310
let editor = viewController.editor
311+
editor.textContainerInset = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
311312
editor.listFormattingProvider = listFormattingProvider
312313
editor.attributedText = NSAttributedString(string: text)
313314
editor.selectedRange = editor.attributedText.fullRange
Loading

0 commit comments

Comments
 (0)