From 7f0ce005ca7c6f7c92be37cc5e6526c1b3a32e54 Mon Sep 17 00:00:00 2001 From: Jaro Date: Fri, 10 Mar 2023 14:42:20 +0100 Subject: [PATCH] Implement trimming spaces at end of lines. --- .golden/arabicFiller20em/golden | 65 +++++---- .golden/czechHelloParagraphUltraNarrow/golden | 16 +-- .golden/loremIpsum100em/golden | 12 +- .golden/loremIpsum20em/golden | 102 +++++++-------- .golden/mixedScriptWordsParagraph/golden | 27 ++-- .golden/spannedArabicFiller20em/golden | 80 ++++++------ .golden/spannedLoremIpsum20em/golden | 123 ++++++++---------- .../Text/ParagraphLayout/Internal/Plain.hs | 7 +- .../ParagraphLayout/Internal/TextContainer.hs | 14 ++ .../Internal/TextContainerSpec.hs | 32 ++++- 10 files changed, 244 insertions(+), 234 deletions(-) diff --git a/.golden/arabicFiller20em/golden b/.golden/arabicFiller20em/golden index ff6c04a..132b960 100644 --- a/.golden/arabicFiller20em/golden +++ b/.golden/arabicFiller20em/golden @@ -1,6 +1,12 @@ -ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19439, y_size = -6000}, spanLayouts = [ - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 17430, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19850, y_size = -6000}, spanLayouts = [ + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 19850, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + [(GlyphInfo {codepoint = 283, cluster = 93, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 388, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 1075, cluster = 89, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 564, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 321, cluster = 87, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 770, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 286, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 955, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 455, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 535, cluster = 78, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 714, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 840, cluster = 76, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 452, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 916, cluster = 74, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 524, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -42,8 +48,16 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 1075, cluster = 8, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 564, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 770, cluster = 6, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 288, cluster = 4, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 18574, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 176, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 18895, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + [(GlyphInfo {codepoint = 90, cluster = 191, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 517, cluster = 189, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 839, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 286, cluster = 187, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 432, cluster = 185, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 265, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 293, cluster = 183, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 336, cluster = 181, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 381, cluster = 179, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 314, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 920, cluster = 177, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 483, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 176, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 293, cluster = 174, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 937, cluster = 172, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 468, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 316, cluster = 170, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -85,16 +99,15 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 955, cluster = 102, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 455, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 101, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 90, cluster = 100, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 1275, cluster = 96, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 726, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 95, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 283, cluster = 93, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 388, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 1075, cluster = 89, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 564, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 321, cluster = 87, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 770, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 286, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 955, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 455, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 19439, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 269, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 1275, cluster = 96, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 726, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 19162, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + [(GlyphInfo {codepoint = 935, cluster = 280, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 476, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 606, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 663, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 796, cluster = 276, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 442, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 710, cluster = 274, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 862, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 477, cluster = 272, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 286, cluster = 270, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 269, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 1275, cluster = 265, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 726, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 264, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 90, cluster = 263, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -133,17 +146,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 502, cluster = 199, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 657, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 293, cluster = 197, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 840, cluster = 195, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 452, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 808, cluster = 193, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 451, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 192, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 90, cluster = 191, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 517, cluster = 189, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 839, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 286, cluster = 187, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 432, cluster = 185, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 265, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 293, cluster = 183, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 336, cluster = 181, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 381, cluster = 179, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 314, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 920, cluster = 177, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 483, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 17767, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + (GlyphInfo {codepoint = 808, cluster = 193, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 451, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 14595, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 90, cluster = 356, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 1204, cluster = 352, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 726, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 293, cluster = 350, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -183,13 +187,6 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 916, cluster = 289, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 524, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 336, cluster = 287, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 937, cluster = 285, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 468, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 477, cluster = 283, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 282, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 935, cluster = 280, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 476, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 606, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 663, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 796, cluster = 276, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 442, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 710, cluster = 274, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 862, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 477, cluster = 272, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 286, cluster = 270, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 477, cluster = 283, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0})] }] ]} diff --git a/.golden/czechHelloParagraphUltraNarrow/golden b/.golden/czechHelloParagraphUltraNarrow/golden index 2d0c002..d7169bd 100644 --- a/.golden/czechHelloParagraphUltraNarrow/golden +++ b/.golden/czechHelloParagraphUltraNarrow/golden @@ -1,4 +1,4 @@ -ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 663, y_size = -13452}, spanLayouts = [ +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 663, y_size = -12331}, spanLayouts = [ SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 663, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 36, cluster = 5, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 663, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 571, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = @@ -9,19 +9,17 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 663, [(GlyphInfo {codepoint = 77, cluster = 8, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 246, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 15, cluster = 9, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 231, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 10, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 446, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 446, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 86, cluster = 11, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 502, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 502, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 89, cluster = 12, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 502, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 559, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 559, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 246, cluster = 13, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 402, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 402, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 87, cluster = 15, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 559, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 559, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 72, cluster = 16, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -12331, x_size = 276, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 276, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 4, cluster = 17, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 276, y_advance = 0, x_offset = 0, y_offset = 0})] }] ]} diff --git a/.golden/loremIpsum100em/golden b/.golden/loremIpsum100em/golden index 7ff59aa..b5aec61 100644 --- a/.golden/loremIpsum100em/golden +++ b/.golden/loremIpsum100em/golden @@ -1,5 +1,5 @@ -ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 99185, y_size = -3363}, spanLayouts = [ - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 95643, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 98954, y_size = -3363}, spanLayouts = [ + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 95412, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 47, cluster = 4, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 507, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 5, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 6, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -211,9 +211,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 9918 (GlyphInfo {codepoint = 91, cluster = 212, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 511, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 213, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 214, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 68, cluster = 215, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 216, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 99185, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + (GlyphInfo {codepoint = 68, cluster = 215, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 98954, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 70, cluster = 217, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 452, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 218, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 80, cluster = 219, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -434,8 +433,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 9918 (GlyphInfo {codepoint = 3, cluster = 436, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 437, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 438, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 87, cluster = 439, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 440, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 87, cluster = 439, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 4041, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 79, cluster = 441, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 442, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), diff --git a/.golden/loremIpsum20em/golden b/.golden/loremIpsum20em/golden index 1a5cb8c..ed5e48e 100644 --- a/.golden/loremIpsum20em/golden +++ b/.golden/loremIpsum20em/golden @@ -1,5 +1,5 @@ -ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19525, y_size = -12331}, spanLayouts = [ - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 18541, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19791, y_size = -12331}, spanLayouts = [ + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 18310, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 47, cluster = 4, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 507, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 5, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 6, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -38,9 +38,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 72, cluster = 39, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 40, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 41, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 85, cluster = 42, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 43, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17674, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + (GlyphInfo {codepoint = 85, cluster = 42, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17443, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 68, cluster = 44, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 71, cluster = 45, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 46, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -78,9 +77,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 80, cluster = 78, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 83, cluster = 79, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 85, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 82, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 16812, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + (GlyphInfo {codepoint = 85, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 19791, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 76, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 84, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 70, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -117,17 +115,16 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 74, cluster = 116, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 117, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 118, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 119, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 17211, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 68, cluster = 120, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 119, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 68, cluster = 120, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 121, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 122, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 84, cluster = 123, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 124, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 125, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 17, cluster = 126, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 127, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 56, cluster = 128, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 688, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 17, cluster = 126, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 17562, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 56, cluster = 128, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 688, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 129, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 130, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 131, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -156,17 +153,16 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 88, cluster = 154, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 155, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 156, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 157, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 19508, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 81, cluster = 158, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 157, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 81, cluster = 158, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 159, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 160, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 161, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 162, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 163, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 71, cluster = 164, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 165, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 72, cluster = 166, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 71, cluster = 164, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 18769, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 72, cluster = 166, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 91, cluster = 167, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 490, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 168, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 169, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -202,17 +198,16 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 3, cluster = 199, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 200, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 201, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 202, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 18074, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 68, cluster = 203, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 202, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 68, cluster = 203, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 204, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 205, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 84, cluster = 206, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 207, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 208, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 83, cluster = 209, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 210, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 72, cluster = 211, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 83, cluster = 209, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 19226, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 72, cluster = 211, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 91, cluster = 212, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 511, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 213, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 214, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -241,9 +236,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 88, cluster = 237, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 238, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 239, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 240, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 16045, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 68, cluster = 241, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 240, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 68, cluster = 241, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 242, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 243, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 392, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 244, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -252,9 +246,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 85, cluster = 247, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 248, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 249, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 72, cluster = 250, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 251, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 71, cluster = 252, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 72, cluster = 250, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 17973, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 71, cluster = 252, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 253, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 254, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 255, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -279,9 +273,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 3, cluster = 274, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 275, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 276, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 277, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 19525, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 89, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 488, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 277, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 89, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 488, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 279, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 280, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 281, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -295,9 +288,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 72, cluster = 289, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 290, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 291, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 87, cluster = 292, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 293, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 72, cluster = 294, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 87, cluster = 292, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 18971, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 72, cluster = 294, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 295, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 296, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 297, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -325,9 +318,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 76, cluster = 319, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 320, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 321, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 322, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 17455, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 81, cluster = 323, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 322, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 81, cluster = 323, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 324, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 325, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 326, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -341,9 +333,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 87, cluster = 334, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 335, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 336, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 331, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 17, cluster = 337, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 338, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 40, cluster = 339, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 580, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 17, cluster = 337, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 17239, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 40, cluster = 339, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 580, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 91, cluster = 340, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 490, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 70, cluster = 341, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 342, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -366,9 +358,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 70, cluster = 359, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 360, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 361, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 362, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 18534, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 70, cluster = 363, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 362, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 70, cluster = 363, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 364, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 83, cluster = 365, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 366, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -380,9 +371,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 3, cluster = 372, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 373, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 374, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 81, cluster = 375, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 376, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 83, cluster = 377, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 81, cluster = 375, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 19199, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 83, cluster = 377, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 378, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 379, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 380, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -409,9 +400,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 84, cluster = 401, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 402, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 403, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 404, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 19490, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 82, cluster = 405, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 404, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 82, cluster = 405, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 431, cluster = 406, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 1033, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 70, cluster = 409, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 410, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -424,9 +414,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 85, cluster = 417, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 418, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 419, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 87, cluster = 420, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 421, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 80, cluster = 422, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 87, cluster = 420, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 12076, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 80, cluster = 422, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 423, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 424, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 425, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), diff --git a/.golden/mixedScriptWordsParagraph/golden b/.golden/mixedScriptWordsParagraph/golden index 23f8993..ec9026e 100644 --- a/.golden/mixedScriptWordsParagraph/golden +++ b/.golden/mixedScriptWordsParagraph/golden @@ -1,4 +1,4 @@ -ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 5678, y_size = -6726}, spanLayouts = [ +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 5447, y_size = -6726}, spanLayouts = [ SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 777, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 77, cluster = 7, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 8, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -7,11 +7,10 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 5678 [(GlyphInfo {codepoint = 758, cluster = 10, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 12, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 14, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = 0, x_size = 1008, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = 0, x_size = 777, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 77, cluster = 16, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 17, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 77, cluster = 18, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 19, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 77, cluster = 18, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 777, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 77, cluster = 20, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 21, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -20,11 +19,10 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 5678 [(GlyphInfo {codepoint = 758, cluster = 23, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 25, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 27, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = -1121, x_size = 1008, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = -1121, x_size = 777, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 77, cluster = 29, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 30, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 77, cluster = 31, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 32, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 77, cluster = 31, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 2335, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 758, cluster = 33, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 35, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -33,11 +31,10 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 5678 [(GlyphInfo {codepoint = 77, cluster = 39, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 40, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 41, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = -2242, x_size = 2566, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = -2242, x_size = 2335, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 758, cluster = 42, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 44, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 758, cluster = 46, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 48, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 758, cluster = 46, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 2335, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 758, cluster = 49, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 51, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -46,11 +43,10 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 5678 [(GlyphInfo {codepoint = 77, cluster = 55, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 56, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 262, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 77, cluster = 57, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = -3363, x_size = 2566, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 3112, y_origin = -3363, x_size = 2335, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 758, cluster = 58, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 758, cluster = 60, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 786, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 758, cluster = 62, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 64, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 758, cluster = 62, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 253, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 77, cluster = 65, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 253, y_origin = -4484, x_size = 763, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = @@ -68,9 +64,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 5678 [(GlyphInfo {codepoint = 758, cluster = 75, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 3763, y_origin = -4484, x_size = 253, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 77, cluster = 77, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 4016, y_origin = -4484, x_size = 994, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 758, cluster = 78, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 4016, y_origin = -4484, x_size = 763, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 758, cluster = 78, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 763, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 758, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 763, y_advance = 0, x_offset = 0, y_offset = 0})] }, Fragment {fragmentRect = Rect {x_origin = 763, y_origin = -5605, x_size = 253, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = diff --git a/.golden/spannedArabicFiller20em/golden b/.golden/spannedArabicFiller20em/golden index 9418d7c..c403ae6 100644 --- a/.golden/spannedArabicFiller20em/golden +++ b/.golden/spannedArabicFiller20em/golden @@ -1,5 +1,5 @@ -ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19439, y_size = -6000}, spanLayouts = [ - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 10232, y_origin = 0, x_size = 7198, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19850, y_size = -6000}, spanLayouts = [ + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 12652, y_origin = 0, x_size = 7198, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 38, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 283, cluster = 36, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 388, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 293, cluster = 34, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -19,7 +19,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 770, cluster = 6, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 288, cluster = 4, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 4640, y_origin = 0, x_size = 5592, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 7060, y_origin = 0, x_size = 5592, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 702, cluster = 56, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 1248, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 454, cluster = 54, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 319, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 770, cluster = 52, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -32,8 +32,14 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 660, cluster = 41, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 531, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 940, cluster = 39, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 626, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 4640, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 7060, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + [(GlyphInfo {codepoint = 283, cluster = 93, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 388, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 1075, cluster = 89, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 564, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 321, cluster = 87, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 770, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 286, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 955, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 455, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 535, cluster = 78, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 714, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 840, cluster = 76, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 452, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 916, cluster = 74, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 524, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -46,16 +52,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 336, cluster = 61, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 773, cluster = 59, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 58, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 15918, y_origin = -1500, x_size = 2656, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 95, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 283, cluster = 93, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 388, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 1075, cluster = 89, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 564, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 321, cluster = 87, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 770, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 286, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 955, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 455, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 11873, y_origin = -1500, x_size = 4045, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 14850, y_origin = -1500, x_size = 4045, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 293, cluster = 113, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 359, cluster = 111, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 827, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 407, cluster = 109, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -67,7 +65,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 90, cluster = 100, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 1275, cluster = 96, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 726, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 6191, y_origin = -1500, x_size = 5682, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 9168, y_origin = -1500, x_size = 5682, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 145, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 1087, cluster = 141, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 949, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 297, cluster = 139, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -85,7 +83,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 286, cluster = 116, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 115, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 236, y_origin = -1500, x_size = 5955, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 3213, y_origin = -1500, x_size = 5955, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 293, cluster = 174, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 937, cluster = 172, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 468, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 316, cluster = 170, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -103,9 +101,17 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 644, cluster = 148, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 468, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 288, cluster = 146, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 236, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 176, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 11364, y_origin = -3000, x_size = 8075, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 3213, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + [(GlyphInfo {codepoint = 90, cluster = 191, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 517, cluster = 189, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 839, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 286, cluster = 187, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 432, cluster = 185, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 265, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 293, cluster = 183, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 336, cluster = 181, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 381, cluster = 179, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 314, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 920, cluster = 177, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 483, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 176, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 14300, y_origin = -3000, x_size = 4862, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 216, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 1396, cluster = 214, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 283, cluster = 212, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 388, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -118,18 +124,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 502, cluster = 199, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 657, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 293, cluster = 197, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 840, cluster = 195, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 452, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 808, cluster = 193, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 451, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 192, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 90, cluster = 191, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 517, cluster = 189, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 839, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 286, cluster = 187, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 432, cluster = 185, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 265, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 293, cluster = 183, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 336, cluster = 181, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 381, cluster = 179, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 314, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 920, cluster = 177, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 483, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 808, cluster = 193, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 451, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 7289, y_origin = -3000, x_size = 4075, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 10225, y_origin = -3000, x_size = 4075, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 1311, cluster = 232, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 575, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 773, cluster = 230, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 479, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 229, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -140,7 +137,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 293, cluster = 219, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 270, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 920, cluster = 217, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 483, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 962, y_origin = -3000, x_size = 6327, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 3898, y_origin = -3000, x_size = 6327, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 264, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 90, cluster = 263, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 272, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 660, cluster = 261, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 531, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -158,23 +155,22 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1943 (GlyphInfo {codepoint = 297, cluster = 237, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 236, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 962, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 269, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 3898, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + [(GlyphInfo {codepoint = 935, cluster = 280, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 476, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 606, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 663, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 796, cluster = 276, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 442, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 710, cluster = 274, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 862, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 477, cluster = 272, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 286, cluster = 270, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 269, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 1275, cluster = 265, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 726, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 12238, y_origin = -4500, x_size = 5529, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = + }, Fragment {fragmentRect = Rect {x_origin = 12238, y_origin = -4500, x_size = 2357, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 935, cluster = 293, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 476, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 334, cluster = 291, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 916, cluster = 289, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 524, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 336, cluster = 287, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 310, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 937, cluster = 285, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 468, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 477, cluster = 283, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 282, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 935, cluster = 280, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 476, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 606, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 663, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 796, cluster = 276, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 442, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 710, cluster = 274, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 862, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 477, cluster = 272, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 286, cluster = 270, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 224, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 477, cluster = 283, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 269, y_advance = 0, x_offset = 0, y_offset = 0})] }], SpanLayout [Fragment {fragmentRect = Rect {x_origin = 5880, y_origin = -4500, x_size = 6358, y_size = -1500}, fragmentPen = (0,-1085), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 323, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 236, y_advance = 0, x_offset = 0, y_offset = 0}), diff --git a/.golden/spannedLoremIpsum20em/golden b/.golden/spannedLoremIpsum20em/golden index 535db90..91b0843 100644 --- a/.golden/spannedLoremIpsum20em/golden +++ b/.golden/spannedLoremIpsum20em/golden @@ -1,4 +1,4 @@ -ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19525, y_size = -12331}, spanLayouts = [ +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 19791, y_size = -12331}, spanLayouts = [ SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 8747, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 47, cluster = 4, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 507, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 5, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -42,9 +42,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 88, cluster = 41, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 42, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 18310, y_origin = 0, x_size = 231, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 43, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 8553, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 8553, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 68, cluster = 44, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 71, cluster = 45, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 46, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -86,9 +84,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 82, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 17443, y_origin = -1121, x_size = 231, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 82, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 9114, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 9114, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 76, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 84, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 70, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -128,18 +124,17 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 81, cluster = 117, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 118, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 16581, y_origin = -2242, x_size = 231, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 3, cluster = 119, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 7009, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 68, cluster = 120, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 16581, y_origin = -2242, x_size = 3210, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 3, cluster = 119, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 68, cluster = 120, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 121, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 122, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 84, cluster = 123, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 124, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 125, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 17, cluster = 126, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 127, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 56, cluster = 128, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 688, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 17, cluster = 126, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 3799, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 56, cluster = 128, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 688, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 129, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 130, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 131, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -148,7 +143,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 80, cluster = 134, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 135, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 7009, y_origin = -3363, x_size = 7878, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 3799, y_origin = -3363, x_size = 7878, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 68, cluster = 136, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 71, cluster = 137, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 138, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -166,23 +161,22 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 80, cluster = 150, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 15, cluster = 151, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 14887, y_origin = -3363, x_size = 2324, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 11677, y_origin = -3363, x_size = 5885, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 152, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 84, cluster = 153, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 154, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 155, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 156, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 157, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 9478, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 81, cluster = 158, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 157, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 81, cluster = 158, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 159, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 160, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 161, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 162, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 163, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 71, cluster = 164, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 165, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 72, cluster = 166, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 71, cluster = 164, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 5686, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 72, cluster = 166, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 91, cluster = 167, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 490, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 168, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 169, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -196,7 +190,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 81, cluster = 177, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 178, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 9478, y_origin = -4484, x_size = 8592, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 5686, y_origin = -4484, x_size = 8592, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 88, cluster = 179, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 180, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 181, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -218,25 +212,24 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 86, cluster = 197, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 198, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 18070, y_origin = -4484, x_size = 1438, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 14278, y_origin = -4484, x_size = 4491, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 199, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 200, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 201, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 202, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 4585, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 68, cluster = 203, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 202, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 68, cluster = 203, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 204, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 205, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 84, cluster = 206, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 207, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 208, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 83, cluster = 209, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 210, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 72, cluster = 211, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 83, cluster = 209, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 1301, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 72, cluster = 211, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 91, cluster = 212, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 511, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 213, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 4585, y_origin = -5605, x_size = 11041, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 1301, y_origin = -5605, x_size = 11041, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 72, cluster = 214, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 215, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 216, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -259,15 +252,14 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 87, cluster = 233, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 413, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 17, cluster = 234, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 15626, y_origin = -5605, x_size = 2448, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 12342, y_origin = -5605, x_size = 6884, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 235, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 39, cluster = 236, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 713, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 237, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 238, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 239, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 240, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 4667, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 68, cluster = 241, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 240, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 68, cluster = 241, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 242, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 243, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 392, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 244, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -276,10 +268,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 85, cluster = 247, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 248, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 249, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 72, cluster = 250, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 251, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 72, cluster = 250, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 4667, y_origin = -6726, x_size = 10089, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 10089, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 71, cluster = 252, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 253, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 254, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -303,13 +294,12 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 76, cluster = 272, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 273, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 14756, y_origin = -6726, x_size = 1289, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 10089, y_origin = -6726, x_size = 7884, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 274, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 275, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 276, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 277, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 6826, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 89, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 488, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 277, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 89, cluster = 278, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 488, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 279, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 280, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 281, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -323,10 +313,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 72, cluster = 289, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 290, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 291, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 87, cluster = 292, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 293, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] + (GlyphInfo {codepoint = 87, cluster = 292, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 6826, y_origin = -7847, x_size = 8158, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 8158, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 72, cluster = 294, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 295, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 296, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -346,7 +335,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 85, cluster = 310, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 311, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 14984, y_origin = -7847, x_size = 4541, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 8158, y_origin = -7847, x_size = 6988, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 312, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 313, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 314, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -357,16 +346,15 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 76, cluster = 319, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 320, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 321, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 322, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 2447, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 81, cluster = 323, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 322, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 81, cluster = 323, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 324, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 325, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 326, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 327, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 328, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 2447, y_origin = -8968, x_size = 8650, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 15146, y_origin = -7847, x_size = 3825, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 83, cluster = 329, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 330, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 331, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -375,9 +363,9 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 87, cluster = 334, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 335, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 336, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 331, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 17, cluster = 337, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 338, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 40, cluster = 339, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 580, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 17, cluster = 337, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 246, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 4594, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 40, cluster = 339, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 580, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 91, cluster = 340, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 490, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 70, cluster = 341, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 72, cluster = 342, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -387,7 +375,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 88, cluster = 346, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 347, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 11097, y_origin = -8968, x_size = 6358, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 4594, y_origin = -8968, x_size = 10907, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 348, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 86, cluster = 349, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 350, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -402,9 +390,8 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 70, cluster = 359, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 360, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 361, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 362, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] - }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 4549, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = - [(GlyphInfo {codepoint = 70, cluster = 363, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 3, cluster = 362, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 70, cluster = 363, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 364, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 83, cluster = 365, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 366, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -415,12 +402,12 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 87, cluster = 371, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 372, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 4549, y_origin = -10089, x_size = 8395, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 15501, y_origin = -8968, x_size = 1738, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 81, cluster = 373, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 374, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 81, cluster = 375, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 376, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 83, cluster = 377, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 81, cluster = 375, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 6426, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 83, cluster = 377, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 85, cluster = 378, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 379, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 380, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -435,7 +422,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 81, cluster = 389, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 390, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 12944, y_origin = -10089, x_size = 5590, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 6426, y_origin = -10089, x_size = 5590, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 391, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 392, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 393, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -451,7 +438,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 76, cluster = 403, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 404, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 10066, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 12016, y_origin = -10089, x_size = 7183, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 82, cluster = 405, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 431, cluster = 406, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 1033, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 70, cluster = 409, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 465, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -465,16 +452,16 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 85, cluster = 417, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 88, cluster = 418, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 419, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 87, cluster = 420, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 3, cluster = 421, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), - (GlyphInfo {codepoint = 80, cluster = 422, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 87, cluster = 420, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] + }, Fragment {fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 2652, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + [(GlyphInfo {codepoint = 80, cluster = 422, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 82, cluster = 423, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 590, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 424, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 79, cluster = 425, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 76, cluster = 426, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 87, cluster = 427, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 10066, y_origin = -11210, x_size = 5383, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 2652, y_origin = -11210, x_size = 5383, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 3, cluster = 428, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 429, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 81, cluster = 430, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0}), @@ -489,7 +476,7 @@ ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 1952 (GlyphInfo {codepoint = 87, cluster = 439, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 402, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 3, cluster = 440, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})] }], - SpanLayout [Fragment {fragmentRect = Rect {x_origin = 15449, y_origin = -11210, x_size = 4041, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 8035, y_origin = -11210, x_size = 4041, y_size = -1121}, fragmentPen = (0,-932), fragmentGlyphs = [(GlyphInfo {codepoint = 79, cluster = 441, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 68, cluster = 442, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0}), (GlyphInfo {codepoint = 69, cluster = 443, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0}), diff --git a/src/Data/Text/ParagraphLayout/Internal/Plain.hs b/src/Data/Text/ParagraphLayout/Internal/Plain.hs index 19243e5..f1a1dff 100644 --- a/src/Data/Text/ParagraphLayout/Internal/Plain.hs +++ b/src/Data/Text/ParagraphLayout/Internal/Plain.hs @@ -162,7 +162,7 @@ layoutAndWrapRunsH maxWidth runs = let pfs = layoutRunsH runs1 (pfs, runs2) applySplit (runs1, runs2) = do - let pfs = layoutRunsH runs1 + let pfs = layoutRunsH $ trimTextsEnd isEndSpace runs1 if totalAdvances pfs <= maxWidth then Just (pfs, runs2) else Nothing @@ -270,6 +270,11 @@ runLineBreaks (WithSpan rs run) = dropWhile (not . valid) $ valid (off, _) = off < runLength runLength = lengthWord8 $ getText run +-- | Predicate for characters that can be potentially removed from the end of +-- a line according to the CSS Text Module. +isEndSpace :: Char -> Bool +isEndSpace c = c `elem` [' ', '\t', '\x1680'] + -- TODO: Identify and correct for differences between the two. localeFromLanguage :: String -> LocaleName localeFromLanguage x = Locale x diff --git a/src/Data/Text/ParagraphLayout/Internal/TextContainer.hs b/src/Data/Text/ParagraphLayout/Internal/TextContainer.hs index 0217674..5ae4299 100644 --- a/src/Data/Text/ParagraphLayout/Internal/TextContainer.hs +++ b/src/Data/Text/ParagraphLayout/Internal/TextContainer.hs @@ -6,6 +6,7 @@ module Data.Text.ParagraphLayout.Internal.TextContainer ,getText ,splitTextAt8 ,splitTextsAt8 + ,trimTextsEnd ) where @@ -70,3 +71,16 @@ collapse :: SeparableTextContainer a => NonEmpty a -> [a] collapse (x :| xs) | Text.null (getText x) = xs | otherwise = x:xs + +-- | Treat a list of text containers as a contiguous sequence, +-- and remove a suffix of characters that match the given predicate. +trimTextsEnd :: SeparableTextContainer a => (Char -> Bool) -> [a] -> [a] +trimTextsEnd p tcs = trimTextsEnd' p (reverse tcs) + +trimTextsEnd' :: SeparableTextContainer a => (Char -> Bool) -> [a] -> [a] +trimTextsEnd' _ [] = [] +trimTextsEnd' p (tc:tcs) + | Text.null (getText trimmed) = trimTextsEnd' p tcs + | otherwise = reverse $ trimmed:tcs + where + trimmed = dropWhileEnd p tc diff --git a/test/Data/Text/ParagraphLayout/Internal/TextContainerSpec.hs b/test/Data/Text/ParagraphLayout/Internal/TextContainerSpec.hs index 6ba933f..6d3fecc 100644 --- a/test/Data/Text/ParagraphLayout/Internal/TextContainerSpec.hs +++ b/test/Data/Text/ParagraphLayout/Internal/TextContainerSpec.hs @@ -1,12 +1,15 @@ module Data.Text.ParagraphLayout.Internal.TextContainerSpec (spec) where -import Data.Text (pack) +import Data.Text (Text, empty, pack) import Data.Text.Glyphize (Direction(..)) import Test.Hspec import Data.Text.ParagraphLayout.Internal.Run import Data.Text.ParagraphLayout.Internal.TextContainer +isSpace :: Char -> Bool +isSpace = (==' ') + inputRuns :: [Run] inputRuns = [ Run @@ -88,3 +91,30 @@ spec = do splitTextsAt8 33 inputRuns `shouldBe` (inputRuns, []) it "large value splits at end of last run" $ do splitTextsAt8 999 inputRuns `shouldBe` (inputRuns, []) + describe "trimTextsEnd" $ do + describe "isSpace" $ do + it "does nothing on an empty list" $ do + let inputTexts = [] :: [Text] + trimTextsEnd isSpace inputTexts `shouldBe` inputTexts + it "does nothing when last run does not end with space" $ do + let inputTexts = [pack "some ", pack "text"] + trimTextsEnd isSpace inputTexts `shouldBe` inputTexts + it "trims empty texts down to an empty list" $ do + let inputTexts = [empty, empty, empty] + trimTextsEnd isSpace inputTexts `shouldBe` [] + it "trims empty texts from a list" $ do + let inputTexts = [pack "some ", pack "text", empty, empty] + trimTextsEnd isSpace inputTexts `shouldBe` + [pack "some ", pack "text"] + it "trims spaces from last text" $ do + let inputTexts = [pack "some ", pack "text "] + trimTextsEnd isSpace inputTexts `shouldBe` + [pack "some ", pack "text"] + it "trims texts containing only spaces" $ do + let inputTexts = [pack "some ", pack "text", pack " "] + trimTextsEnd isSpace inputTexts `shouldBe` + [pack "some ", pack "text"] + it "trims last text that contains non-spaces" $ do + let inputTexts = [pack "some ", pack "text ", pack " "] + trimTextsEnd isSpace inputTexts `shouldBe` + [pack "some ", pack "text"] -- 2.30.2