From da52b7246f950bc2dacd97ef2417ba93d5cb63e1 Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Thu, 21 Aug 2025 16:40:36 +0200 Subject: [PATCH] Do not treat combining marks as whitespace (#19498) * Do not treat spacing combining marks as whitespace * Do not treat combining marks as whitespace Try to find a matching typeface on a grapheme boundary * Add embedded font for testing * Remove using * Fix naming and remove redundant code * Apply default until we reach the next base character --- .../Media/TextFormatting/TextCharacters.cs | 17 ++++-------- .../Media/TextFormatting/Unicode/Codepoint.cs | 4 +-- .../Assets/NotoSansMiao-Regular.ttf | Bin 0 -> 99804 bytes .../TextFormatting/TextFormatterTests.cs | 26 ++++++++++++++++++ 4 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 tests/Avalonia.RenderTests/Assets/NotoSansMiao-Regular.ttf diff --git a/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs b/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs index d001f8f370..acfffb68fa 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs @@ -115,21 +115,13 @@ namespace Avalonia.Media.TextFormatting var codepoint = Codepoint.ReplacementCodepoint; - var codepointEnumerator = new CodepointEnumerator(text.Slice(count).Span); + var graphemeEnumerator = new GraphemeEnumerator(text.Slice(count).Span); - while (codepointEnumerator.MoveNext(out var cp)) + if (graphemeEnumerator.MoveNext(out var grapheme)) { - if (cp.IsWhiteSpace) - { - continue; - } - - codepoint = cp; - - break; + codepoint = grapheme.FirstCodepoint; } - //ToDo: Fix FontFamily fallback var matchFound = fontManager.TryMatchCharacter(codepoint, defaultTypeface.Style, defaultTypeface.Weight, defaultTypeface.Stretch, defaultTypeface.FontFamily, defaultProperties.CultureInfo, @@ -151,7 +143,8 @@ namespace Avalonia.Media.TextFormatting // no fallback found var enumerator = new GraphemeEnumerator(textSpan); - while (enumerator.MoveNext(out var grapheme)) + //Move forward until we reach the next base character + while (enumerator.MoveNext(out grapheme)) { if (!grapheme.FirstCodepoint.IsWhiteSpace && defaultGlyphTypeface.TryGetGlyph(grapheme.FirstCodepoint, out _)) { diff --git a/src/Avalonia.Base/Media/TextFormatting/Unicode/Codepoint.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/Codepoint.cs index fec8dc5657..62cba8f5e7 100644 --- a/src/Avalonia.Base/Media/TextFormatting/Unicode/Codepoint.cs +++ b/src/Avalonia.Base/Media/TextFormatting/Unicode/Codepoint.cs @@ -128,10 +128,8 @@ namespace Avalonia.Media.TextFormatting.Unicode { const ulong whiteSpaceMask = (1UL << (int)GeneralCategory.Control) | - (1UL << (int)GeneralCategory.NonspacingMark) | (1UL << (int)GeneralCategory.Format) | - (1UL << (int)GeneralCategory.SpaceSeparator) | - (1UL << (int)GeneralCategory.SpacingMark); + (1UL << (int)GeneralCategory.SpaceSeparator); return ((1UL << (int)GeneralCategory) & whiteSpaceMask) != 0UL; } diff --git a/tests/Avalonia.RenderTests/Assets/NotoSansMiao-Regular.ttf b/tests/Avalonia.RenderTests/Assets/NotoSansMiao-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a08d202e7751ae436bcb526cb7427ff93b9f1f33 GIT binary patch literal 99804 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�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≤F*70S0_r|6%^SRt~!CV8PD7s(V^u0b{v?tb<~ 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