M .golden/paginatedParagraphLayout/loremIpsum20em.golden => .golden/paginatedParagraphLayout/loremIpsum20em.golden +22 -11
@@ 6,7 6,8 @@
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 18310, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 55,7 56,8 @@
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17443, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 110,7 112,8 @@
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 19791, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 164,7 167,8 @@
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17562, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 211,7 215,8 @@
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 18769, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 265,7 270,8 @@
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 19226, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 315,7 321,8 @@
{ fragmentUserData = ()
, fragmentLine = 7
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 17973, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 366,7 373,8 @@
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 18971, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 427,7 435,8 @@
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 17239, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 474,7 483,8 @@
{ fragmentUserData = ()
, fragmentLine = 10
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 19199, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 526,7 536,8 @@
{ fragmentUserData = ()
, fragmentLine = 11
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 12076, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paginatedParagraphLayout/spannedArabicFiller20em.golden => .golden/paginatedParagraphLayout/spannedArabicFiller20em.golden +28 -14
@@ 6,7 6,8 @@
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 12652, y_origin = 0, x_size = 7198, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 37,7 38,8 @@
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 7060, y_origin = 0, x_size = 5592, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 61,7 63,8 @@
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 7060, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 93,7 96,8 @@
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 14850, y_origin = -1500, x_size = 4045, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 116,7 120,8 @@
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 9168, y_origin = -1500, x_size = 5682, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 145,7 150,8 @@
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 3213, y_origin = -1500, x_size = 5955, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 174,7 180,8 @@
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 3213, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 233,7 240,8 @@
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 14300, y_origin = 0, x_size = 4862, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 259,7 267,8 @@
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 10225, y_origin = 0, x_size = 4075, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 281,7 290,8 @@
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 3898, y_origin = 0, x_size = 6327, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 310,7 320,8 @@
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 3898, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 328,7 339,8 @@
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 12238, y_origin = -1500, x_size = 2357, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 347,7 359,8 @@
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 5880, y_origin = -1500, x_size = 6358, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 377,7 390,8 @@
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 5880, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
M .golden/paragraphLayout/arabicFiller20em.golden => .golden/paragraphLayout/arabicFiller20em.golden +8 -4
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 19850, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 64,7 65,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 18895, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 125,7 127,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 19162, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 181,7 184,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 14595, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
M .golden/paragraphLayout/czechHello.golden => .golden/paragraphLayout/czechHello.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 5274, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/czechHelloParagraphNarrow.golden => .golden/paragraphLayout/czechHelloParagraphNarrow.golden +10 -5
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 1234, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 18,7 19,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 1089, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 31,7 33,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 948, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 43,7 46,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 961, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 55,7 59,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 835, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/czechHelloParagraphUltraNarrow.golden => .golden/paragraphLayout/czechHelloParagraphUltraNarrow.golden +22 -11
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 663, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 17,7 18,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 571, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 28,7 30,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 590, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 39,7 42,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 253, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 50,7 54,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 246, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 61,7 66,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 446, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 72,7 78,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 7
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 502, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 83,7 90,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 559, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 94,7 102,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 402, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 105,7 114,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 10
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 559, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 116,7 126,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 11
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 276, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/devanagari.golden => .golden/paragraphLayout/devanagari.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 8640, y_size = -1630}
, fragmentPen = (0, -1171)
, fragmentGlyphs =
M .golden/paragraphLayout/devanagariAccent.golden => .golden/paragraphLayout/devanagariAccent.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 645, y_size = -1000}
, fragmentPen = (0, -500)
, fragmentGlyphs =
M .golden/paragraphLayout/devanagariPrefixedAccent.golden => .golden/paragraphLayout/devanagariPrefixedAccent.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 0, y_size = -1000}
, fragmentPen = (0, -500)
, fragmentGlyphs =
M .golden/paragraphLayout/hardBreaksLTR.golden => .golden/paragraphLayout/hardBreaksLTR.golden +18 -9
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 1563, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 22,7 23,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 3357, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 45,7 47,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 1563, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 61,7 64,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 4305, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 76,7 80,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 861, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 87,7 92,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 1563, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 103,7 109,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 7
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 0, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 113,7 120,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 3675, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 128,7 136,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 1722, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/hardBreaksRTL.golden => .golden/paragraphLayout/hardBreaksRTL.golden +18 -9
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 2808, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 22,7 23,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 5852, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 45,7 47,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 2808, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 61,7 64,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 4884, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 77,7 81,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -6000, x_size = 1211, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 88,7 93,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -7500, x_size = 2808, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 104,7 110,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 7
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -9000, x_size = 0, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 114,7 121,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -10500, x_size = 4156, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 129,7 137,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -12000, x_size = 1960, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
M .golden/paragraphLayout/ligature.golden => .golden/paragraphLayout/ligature.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 4672, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/ligatureParagraphBreak1.golden => .golden/paragraphLayout/ligatureParagraphBreak1.golden +6 -3
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 2162, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 20,7 21,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 2104, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 35,7 37,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 402, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/ligatureParagraphBreak2.golden => .golden/paragraphLayout/ligatureParagraphBreak2.golden +6 -3
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 1772, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 20,7 21,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 1361, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 33,7 35,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 1535, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/lineHeightLarger.golden => .golden/paragraphLayout/lineHeightLarger.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 522, y_size = -1600}
, fragmentPen = (0, -1172)
, fragmentGlyphs =
M .golden/paragraphLayout/lineHeightNormal.golden => .golden/paragraphLayout/lineHeightNormal.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 522, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/lineHeightSmaller.golden => .golden/paragraphLayout/lineHeightSmaller.golden +2 -1
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 522, y_size = -599}
, fragmentPen = (0, -671)
, fragmentGlyphs =
M .golden/paragraphLayout/loremIpsum100em.golden => .golden/paragraphLayout/loremIpsum100em.golden +6 -3
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 95412, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 228,7 229,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 98954, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 459,7 461,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 4041, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/loremIpsum20em.golden => .golden/paragraphLayout/loremIpsum20em.golden +22 -11
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 18310, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 55,7 56,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17443, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 103,7 105,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 19791, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 157,7 160,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 17562, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 204,7 208,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 18769, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 258,7 263,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 19226, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 308,7 314,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 7
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 17973, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 359,7 366,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 18971, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 413,7 421,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 17239, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 460,7 469,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 10
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 19199, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 512,7 522,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 11
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 12076, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/manySpaces.golden => .golden/paragraphLayout/manySpaces.golden +8 -4
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 3132, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 22,7 23,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 3132, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 38,7 40,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 3132, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 54,7 57,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 3132, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/mixedLanguageLTR.golden => .golden/paragraphLayout/mixedLanguageLTR.golden +4 -2
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 4837, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 30,7 31,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 4837, y_origin = 0, x_size = 1276, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/mixedScriptWords.golden => .golden/paragraphLayout/mixedScriptWords.golden +46 -23
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 777, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 19,7 20,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 777, y_origin = 0, x_size = 2335, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 32,7 34,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 3112, y_origin = 0, x_size = 777, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 45,7 48,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 777, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 58,7 62,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 777, y_origin = -1121, x_size = 2335, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 71,7 76,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 3112, y_origin = -1121, x_size = 777, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 84,7 90,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 2335, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 97,7 104,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 2335, y_origin = -2242, x_size = 777, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 110,7 118,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 3112, y_origin = -2242, x_size = 2335, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 123,7 132,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 2335, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 136,7 146,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 2335, y_origin = -3363, x_size = 777, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 149,7 160,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 3112, y_origin = -3363, x_size = 2335, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 162,7 174,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 253, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 173,7 186,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 253, y_origin = -4484, x_size = 763, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 184,7 198,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 1016, y_origin = -4484, x_size = 737, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 197,7 212,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 1753, y_origin = -4484, x_size = 763, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 208,7 224,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 2516, y_origin = -4484, x_size = 484, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 220,7 237,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 3000, y_origin = -4484, x_size = 763, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 231,7 249,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 3763, y_origin = -4484, x_size = 253, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 242,7 261,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 4016, y_origin = -4484, x_size = 763, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 253,7 273,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 763, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 264,7 285,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 763, y_origin = -5605, x_size = 253, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 275,7 297,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 1016, y_origin = -5605, x_size = 763, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/paragraphLayout/spannedArabicFiller20em.golden => .golden/paragraphLayout/spannedArabicFiller20em.golden +28 -14
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 12652, y_origin = 0, x_size = 7198, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 37,7 38,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 7060, y_origin = 0, x_size = 5592, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 61,7 63,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 7060, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 93,7 96,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 14850, y_origin = -1500, x_size = 4045, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 116,7 120,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 9168, y_origin = -1500, x_size = 5682, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 145,7 150,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 3213, y_origin = -1500, x_size = 5955, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 174,7 180,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 3213, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 193,7 200,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 14300, y_origin = -3000, x_size = 4862, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 219,7 227,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 10225, y_origin = -3000, x_size = 4075, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 241,7 250,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 3898, y_origin = -3000, x_size = 6327, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 270,7 280,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 3898, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 288,7 299,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 12238, y_origin = -4500, x_size = 2357, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 307,7 319,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 5880, y_origin = -4500, x_size = 6358, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
@@ 337,7 350,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 5880, y_size = -1500}
, fragmentPen = (0, -1085)
, fragmentGlyphs =
M .golden/paragraphLayout/spannedLoremIpsum20em.golden => .golden/paragraphLayout/spannedLoremIpsum20em.golden +60 -30
@@ 6,7 6,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 8747, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 37,7 38,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 8747, y_origin = 0, x_size = 9563, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 71,7 73,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 8553, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 105,7 108,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 2
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 8553, y_origin = -1121, x_size = 8890, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 135,7 139,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 9114, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 169,7 174,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 9114, y_origin = -2242, x_size = 7467, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 197,7 203,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 3
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 16581, y_origin = -2242, x_size = 3210, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 215,7 222,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 3799, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 236,7 244,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 3799, y_origin = -3363, x_size = 7878, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 265,7 274,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 4
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 11677, y_origin = -3363, x_size = 5885, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 288,7 298,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 5686, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 314,7 325,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 5686, y_origin = -4484, x_size = 8592, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 347,7 359,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 5
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 14278, y_origin = -4484, x_size = 4491, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 368,7 381,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 1301, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 384,7 398,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 1301, y_origin = -5605, x_size = 11041, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 418,7 433,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 6
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 12342, y_origin = -5605, x_size = 6884, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 447,7 463,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 7
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 10089, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 482,7 499,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 7
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 10089, y_origin = -6726, x_size = 7884, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 514,7 532,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 8158, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 545,7 564,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 8158, y_origin = -7847, x_size = 6988, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 575,7 595,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 8
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 15146, y_origin = -7847, x_size = 3825, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 594,7 615,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 4594, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 616,7 638,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 4594, y_origin = -8968, x_size = 10907, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 654,7 677,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 9
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 15501, y_origin = -8968, x_size = 1738, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 667,7 691,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 10
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 6426, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 694,7 719,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 10
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 6426, y_origin = -10089, x_size = 5590, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 721,7 747,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 10
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 12016, y_origin = -10089, x_size = 7183, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 745,7 772,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 11
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 2652, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 764,7 792,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 11
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 2652, y_origin = -11210, x_size = 5383, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 790,7 819,8 @@ ParagraphLayout
{ fragmentUserData = ()
, fragmentLine = 11
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 8035, y_origin = -11210, x_size = 4041, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M .golden/richParagraphLayout/mixedSizes.golden => .golden/richParagraphLayout/mixedSizes.golden +4 -2
@@ 19,7 19,8 @@ ParagraphLayout
{ fragmentUserData = "smallText1"
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = "smallBox1", boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 1651, y_origin = 0, x_size = 1956, y_size = -841}
, fragmentPen = (0, -699)
, fragmentGlyphs =
@@ 49,7 50,8 @@ ParagraphLayout
{ fragmentUserData = "smallText2"
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = "smallBox2", boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 5258, y_origin = 0, x_size = 1956, y_size = -841}
, fragmentPen = (0, -699)
, fragmentGlyphs =
M .golden/richParagraphLayout/nestedBoxes.golden => .golden/richParagraphLayout/nestedBoxes.golden +5 -2
@@ 34,7 34,9 @@ ParagraphLayout
{ fragmentUserData = "text2"
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = "box3", boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
+ , AncestorBox {boxUserData = "box2", boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
+ ]
, fragmentRect = Rect {x_origin = 8569, y_origin = 0, x_size = 3350, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
@@ 51,7 53,8 @@ ParagraphLayout
{ fragmentUserData = "text3"
, fragmentLine = 1
, fragmentAncestorBoxes =
- []
+ [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
+ ]
, fragmentRect = Rect {x_origin = 11919, y_origin = 0, x_size = 2657, y_size = -1121}
, fragmentPen = (0, -932)
, fragmentGlyphs =
M CHANGELOG.md => CHANGELOG.md +3 -0
@@ 7,6 7,9 @@
* Supports multiple fonts in the same paragraph. Where line height varies,
text will be aligned by its top edge.
+ * Supports nested boxes, each with optional spacing applied to its left
+ and right edge.
+
* Requires user to set base text direction (LTR or RTL).
* Moved existing plain text interface into `Data.Text.ParagraphLayout.Plain`
M balkon.cabal => balkon.cabal +1 -0
@@ 139,6 139,7 @@ library balkon-internal
Data.Text.ParagraphLayout.Internal.ParagraphExtents,
Data.Text.ParagraphLayout.Internal.ParagraphLine,
Data.Text.ParagraphLayout.Internal.ProtoFragment,
+ Data.Text.ParagraphLayout.Internal.ProtoLine,
Data.Text.ParagraphLayout.Internal.Script
build-depends:
M src/Data/Text/ParagraphLayout/Internal/Layout.hs => src/Data/Text/ParagraphLayout/Internal/Layout.hs +107 -29
@@ 10,11 10,12 @@ import Data.Int (Int32)
import Data.List (mapAccumL)
import Data.List.NonEmpty (NonEmpty ((:|)), nonEmpty, (<|))
import qualified Data.List.NonEmpty as NonEmpty
-import Data.Maybe (catMaybes)
+import Data.Maybe (catMaybes, fromMaybe)
import Data.Text.Foreign (lengthWord8)
import Data.Text.Glyphize
( Buffer (..)
, ContentType (ContentTypeUnicode)
+ , Direction (DirLTR, DirRTL)
, FontExtents (..)
, GlyphInfo
, GlyphPos
@@ 25,13 26,17 @@ import Data.Text.Glyphize
import qualified Data.Text.ICU as BreakStatus (Line (Hard))
import qualified Data.Text.Lazy as Lazy
+import Data.Text.ParagraphLayout.Internal.AncestorBox
+import Data.Text.ParagraphLayout.Internal.ApplyBoxes
import Data.Text.ParagraphLayout.Internal.BiDiReorder
import Data.Text.ParagraphLayout.Internal.Break
import Data.Text.ParagraphLayout.Internal.Fragment
import Data.Text.ParagraphLayout.Internal.LineHeight
import Data.Text.ParagraphLayout.Internal.ParagraphExtents
import qualified Data.Text.ParagraphLayout.Internal.ProtoFragment as PF
+import qualified Data.Text.ParagraphLayout.Internal.ProtoLine as PL
import Data.Text.ParagraphLayout.Internal.Rect
+import qualified Data.Text.ParagraphLayout.Internal.ResolvedBox as RB
import qualified Data.Text.ParagraphLayout.Internal.ResolvedSpan as RS
import Data.Text.ParagraphLayout.Internal.Run
import Data.Text.ParagraphLayout.Internal.TextContainer
@@ 43,6 48,7 @@ import Data.Text.ParagraphLayout.Internal.WithSpan
-- for the actual `spanUserData` before returning it to the user.
type ProtoFragmentWithSpan d = WithSpan d PF.ProtoFragment
type FragmentWithSpan d = WithSpan d (Fragment d)
+type ProtoFragmentWithBoxes d = WithBoxes d (ProtoFragmentWithSpan d)
-- | Create a multi-line layout from the given runs, splitting them as
-- necessary to fit within the requested line width.
@@ 55,27 61,36 @@ layoutAndAlignLines maxWidth runs = frags
frags = concatMap NonEmpty.toList fragsInLines
(_, fragsInLines) = mapAccumL positionLineH originY numberedLines
numberedLines = zip [1 ..] canonicalLines
- canonicalLines = fmap reorder logicalLines
- logicalLines = nonEmptyItems $ layoutLines maxWidth runs
+ canonicalLines = fmap reorderProtoFragments logicalLines
+ logicalLines = nonEmptyItems $ layoutLines maxWidth [] runs
originY = paragraphOriginY
-nonEmptyItems :: Foldable t => t [a] -> [NonEmpty a]
-nonEmptyItems = catMaybes . map nonEmpty . toList
+reorderProtoFragments :: PL.ProtoLine NonEmpty d -> PL.ProtoLine NonEmpty d
+reorderProtoFragments pl@(PL.ProtoLine { PL.protoFragments = pfs }) =
+ pl { PL.protoFragments = reorder pfs }
+
+nonEmptyItems :: Foldable t =>
+ t (PL.ProtoLine [] d) -> [PL.ProtoLine NonEmpty d]
+nonEmptyItems = catMaybes . map PL.nonEmpty . toList
-- | Create a multi-line layout from the given runs, splitting them as
-- necessary to fit within the requested line width.
--
-- The output is a two-dimensional list of fragments positioned along the
-- horizontal axis.
-layoutLines ::
- Int32 -> NonEmpty (WithSpan d Run) -> NonEmpty [ProtoFragmentWithSpan d]
-layoutLines maxWidth runs = case nonEmpty rest of
+layoutLines :: Int32 -> [RB.ResolvedBox d] -> NonEmpty (WithSpan d Run) ->
+ NonEmpty (PL.ProtoLine [] d)
+layoutLines maxWidth openBoxes runs = case nonEmpty rest of
-- Everything fits. We are done.
Nothing -> fitting :| []
-- Something fits, the rest goes on the next line.
- Just rest' -> fitting <| layoutLines maxWidth rest'
+ Just runs' -> fitting <| layoutLines maxWidth openBoxes' runs'
where
- (fitting, rest) = layoutAndWrapRunsH maxWidth runs
+ (fitting, rest) = layoutAndWrapRunsH maxWidth openBoxes runs
+ -- Update the list of open boxes using the logically last run on this
+ -- line, if there is one.
+ openBoxes' =
+ openBoxes `fromMaybe` lastSpanBoxes (PL.protoFragments fitting)
-- TODO: Allow a run across multiple spans (e.g. if they only differ by colour).
@@ 86,27 101,33 @@ layoutLines maxWidth runs = case nonEmpty rest of
-- @vertical-align: top@ in CSS.
--
-- TODO: For rich text, allow other types of vertical alignment.
-positionLineH :: Int32 -> (Int, NonEmpty (ProtoFragmentWithSpan d)) ->
+positionLineH :: Int32 -> (Int, PL.ProtoLine NonEmpty d) ->
(Int32, NonEmpty (FragmentWithSpan d))
-positionLineH originY (line, pfs) = (nextY, frags)
+positionLineH originY (num, pl) = (nextY, frags)
where
nextY = maximum $ fmap y_min rects
rects = fmap (\ (WithSpan _ r) -> fragmentRect r) frags
- (_, frags) = mapAccumL (positionFragmentH line originY) originX pfs
+ (_, frags) = mapAccumL (positionFragmentH num originY) originX wpfs
+ wpfs = PL.applyBoxes pl
originX = paragraphOriginX
-- | Position the given horizontal fragment on a line,
-- using @originY@ as its top edge and @originX@ as its left edge,
-- returning the X coordinate of its right edge for continuation.
-positionFragmentH :: Int -> Int32 -> Int32 -> ProtoFragmentWithSpan d ->
+positionFragmentH :: Int -> Int32 -> Int32 -> ProtoFragmentWithBoxes d ->
(Int32, FragmentWithSpan d)
-positionFragmentH line originY originX (WithSpan rs pf) =
+positionFragmentH line originY originX (WithBoxes lbs (WithSpan rs pf) rbs) =
(nextX, WithSpan rs frag)
where
- nextX = originX + PF.advance pf
- frag = Fragment userData line [] rect (penX, penY) (PF.glyphs pf)
+ nextX = contentX + contentWidth + rightSpacing
+ contentX = originX + leftSpacing
+ contentWidth = PF.advance pf
+ leftSpacing = totalLeftSpacing bs
+ rightSpacing = totalRightSpacing bs
+ frag = Fragment userData line bs rect (penX, penY) (PF.glyphs pf)
userData = RS.spanUserData rs
- rect = Rect originX originY (PF.advance pf) (-lineHeight)
+ bs = ancestorBoxes lbs rbs rs
+ rect = Rect contentX originY contentWidth (-lineHeight)
penX = 0
penY = descent + leading `div` 2 - lineHeight
lineHeight = case textLineHeight opts of
@@ 119,22 140,83 @@ positionFragmentH line originY originX (WithSpan rs pf) =
extents = fontExtentsForDir (textFont opts) (PF.direction pf)
opts = RS.spanTextOptions rs
+ancestorBoxes
+ :: [RB.ResolvedBox d]
+ -> [RB.ResolvedBox d]
+ -> RS.ResolvedSpan d
+ -> [AncestorBox d]
+ancestorBoxes leftBoxes rightBoxes rs = map ancestorBox $ RS.spanBoxes rs
+ where
+ ancestorBox b = case RB.boxDirection b of
+ DirLTR -> AncestorBox
+ { boxUserData = RB.boxUserData b
+ , boxLeftSpacing = leftSpacing b
+ , boxRightSpacing = rightSpacing b
+ , boxStartSpacing = leftSpacing b
+ , boxEndSpacing = rightSpacing b
+ }
+ DirRTL -> AncestorBox
+ { boxUserData = RB.boxUserData b
+ , boxLeftSpacing = leftSpacing b
+ , boxRightSpacing = rightSpacing b
+ , boxStartSpacing = rightSpacing b
+ , boxEndSpacing = leftSpacing b
+ }
+ _ -> AncestorBox
+ { boxUserData = RB.boxUserData b
+ , boxLeftSpacing = Nothing
+ , boxRightSpacing = Nothing
+ , boxStartSpacing = Nothing
+ , boxEndSpacing = Nothing
+ }
+ leftSpacing b = if b `elem` leftBoxes
+ then Just $ RB.boxLeftSpacing b
+ else Nothing
+ rightSpacing b = if b `elem` rightBoxes
+ then Just $ RB.boxRightSpacing b
+ else Nothing
+
-- | Calculate layout for multiple horizontal runs, breaking them as necessary
-- to fit as much content as possible without exceeding the maximum line width,
-- and return the remaining runs to be placed on other lines.
-layoutAndWrapRunsH :: Int32 -> NonEmpty (WithSpan d Run) ->
- ([ProtoFragmentWithSpan d], [WithSpan d Run])
-layoutAndWrapRunsH maxWidth runs = NonEmpty.head $ validLayouts
+layoutAndWrapRunsH
+ :: Int32
+ -> [RB.ResolvedBox d]
+ -> NonEmpty (WithSpan d Run)
+ -> (PL.ProtoLine [] d, [WithSpan d Run])
+layoutAndWrapRunsH maxWidth prevOpenBoxes runs = NonEmpty.head $ validProtoLines
where
- validLayouts = dropWhile1 tooLong layouts
- tooLong (pfs, _) = totalAdvances pfs > maxWidth
- layouts = fmap layoutFst splits
- layoutFst (runs1, runs2) = (layoutRunsH runs1, runs2)
+ validProtoLines = dropWhile1 tooLong layouts
+ tooLong (pl, _) = PL.width pl > maxWidth
+ layouts = fmap fstToProtoLine splits
+ fstToProtoLine (runs1, runs2) =
+ (protoLine prevOpenBoxes (layoutRunsH runs1) runs2, runs2)
-- TODO: Consider optimising.
-- We do not need to look for soft breaks further than the
-- shortest hard break.
splits = hardSplit runs :| softSplits runs
+-- | Construct a `ProtoLine`, peeking at the text run on the following line
+-- to determine `nextOpenBoxes`.
+protoLine
+ :: [RB.ResolvedBox d]
+ -> [ProtoFragmentWithSpan d]
+ -> [WithSpan d Run]
+ -> PL.ProtoLine [] d
+protoLine prev pfs rest = PL.ProtoLine pfs prev next
+ where
+ next = [] `fromMaybe` firstSpanBoxes rest
+
+firstSpanBoxes :: [WithSpan d a] -> Maybe [RB.ResolvedBox d]
+firstSpanBoxes xs = case xs of
+ [] -> Nothing
+ (WithSpan rs _) : _ -> Just $ RS.spanBoxes rs
+
+lastSpanBoxes :: [WithSpan d a] -> Maybe [RB.ResolvedBox d]
+lastSpanBoxes xs = case reverse xs of
+ [] -> Nothing
+ (WithSpan rs _) : _ -> Just $ RS.spanBoxes rs
+
-- | Treat a list of runs as a contiguous sequence, and split them into two
-- lists so that the first list contains as many non-whitespace characters as
-- possible without crossing a hard line break (typically after a newline
@@ 209,10 291,6 @@ dropWhile1 p list = case NonEmpty.uncons list of
layoutRunsH :: [WithSpan d Run] -> [ProtoFragmentWithSpan d]
layoutRunsH runs = map layoutRunH runs
--- | Sum of all advances within the given fragments.
-totalAdvances :: [ProtoFragmentWithSpan d] -> Int32
-totalAdvances pfs = sum $ map (\ (WithSpan _ pf) -> PF.advance pf) pfs
-
-- | Calculate layout for the given horizontal run and attach extra information.
layoutRunH :: WithSpan d Run -> ProtoFragmentWithSpan d
layoutRunH (WithSpan rs run) = WithSpan rs pf
A src/Data/Text/ParagraphLayout/Internal/ProtoLine.hs => src/Data/Text/ParagraphLayout/Internal/ProtoLine.hs +76 -0
@@ 0,0 1,76 @@
+module Data.Text.ParagraphLayout.Internal.ProtoLine
+ ( ProtoLine (..)
+ , nonEmpty
+ , width
+ , applyBoxes
+ )
+where
+
+import Data.Int (Int32)
+import Data.List.NonEmpty (NonEmpty ((:|)))
+
+import qualified Data.Text.ParagraphLayout.Internal.ApplyBoxes as Algo
+import Data.Text.ParagraphLayout.Internal.ProtoFragment
+import Data.Text.ParagraphLayout.Internal.ResolvedBox
+import Data.Text.ParagraphLayout.Internal.WithSpan
+
+-- | Contents of a line that have not been visually ordered or positioned yet.
+data ProtoLine f d = ProtoLine
+
+ { protoFragments :: f (WithSpan d ProtoFragment)
+ -- ^ Fragments on the line, in logical order.
+ -- Intended to be either a regular list or a non-empty list.
+
+ , prevOpenBoxes :: [ResolvedBox d]
+ -- ^ Boxes whose starts are located on preceding lines.
+ -- The spacing for their start edge will not count towards this line.
+
+ , nextOpenBoxes :: [ResolvedBox d]
+ -- ^ Boxes whose ends are located on following lines.
+ -- The spacing for their end edge will not count towards this line.
+
+ }
+
+-- | Covert a line with a regular list of fragments into `Just` a line with
+-- a non-empty list of fragments, or `Nothing` if there are no fragments.
+nonEmpty :: ProtoLine [] d -> Maybe (ProtoLine NonEmpty d)
+nonEmpty (ProtoLine [] _ _) = Nothing
+nonEmpty pl@(ProtoLine { protoFragments = (f : fs) }) =
+ Just pl { protoFragments = f :| fs }
+
+-- | Total width of the line (content and spacing).
+width :: (Foldable f, Functor f) => ProtoLine f d -> Int32
+width pl = totalAdvances pl + totalBoxesStart pl + totalBoxesEnd pl
+
+-- | Determine which horizontal fragments are the leftmost and which are the
+-- rightmost within their ancestor inline boxes.
+--
+-- The input must be ordered from left to right.
+applyBoxes :: ProtoLine NonEmpty d ->
+ NonEmpty (Algo.WithBoxes d (WithSpan d ProtoFragment))
+applyBoxes pl = Algo.applyBoxes prevOpen nextOpen pfs
+ where
+ prevOpen = prevOpenBoxes pl
+ nextOpen = nextOpenBoxes pl
+ pfs = protoFragments pl
+
+-- | Total glyph advances on the line.
+totalAdvances :: (Foldable f, Functor f) => ProtoLine f d -> Int32
+totalAdvances pl = sum $ fmap getAdvance $ protoFragments pl
+ where getAdvance (WithSpan _ pf) = advance pf
+
+-- | Total spacing for boxes starting on the line.
+totalBoxesStart :: (Foldable f, Functor f) => ProtoLine f d -> Int32
+totalBoxesStart pl = sum $ fmap boxStartSpacing $ boxesStart pl
+
+-- | Total spacing for boxes ending on the line.
+totalBoxesEnd :: (Foldable f, Functor f) => ProtoLine f d -> Int32
+totalBoxesEnd pl = sum $ fmap boxEndSpacing $ boxesEnd pl
+
+-- | Boxes that start on the given line.
+boxesStart :: (Foldable f, Functor f) => ProtoLine f d -> [ResolvedBox d]
+boxesStart pl = allBoxes (protoFragments pl) `diff` prevOpenBoxes pl
+
+-- | Boxes that end on the given line.
+boxesEnd :: (Foldable f, Functor f) => ProtoLine f d -> [ResolvedBox d]
+boxesEnd pl = allBoxes (protoFragments pl) `diff` nextOpenBoxes pl