diff --git a/Directory.Packages.props b/Directory.Packages.props
index d62a1d2982..2fdb4633e7 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -18,7 +18,7 @@
-
+
diff --git a/Examples/UICatalog/Scenarios/CombiningMarks.cs b/Examples/UICatalog/Scenarios/CombiningMarks.cs
index 7d8437a230..c1bd73ecf2 100644
--- a/Examples/UICatalog/Scenarios/CombiningMarks.cs
+++ b/Examples/UICatalog/Scenarios/CombiningMarks.cs
@@ -16,7 +16,8 @@ public override void Main ()
Application.Top!.SetNeedsDraw ();
var i = -1;
- top.AddStr ("Terminal.Gui only supports combining marks that normalize. See Issue #2616.");
+ top.Move (0, ++i);
+ top.AddStr ("Terminal.Gui supports all combining sequences that can be rendered as an unique grapheme.");
top.Move (0, ++i);
top.AddStr ("\u0301<- \"\\u0301\" using AddStr.");
top.Move (0, ++i);
@@ -38,7 +39,7 @@ public override void Main ()
top.AddRune ('\u0301');
top.AddRune ('\u0328');
top.AddRune (']');
- top.AddStr ("<- \"[a\\u0301\\u0301\\u0328]\" using AddRune for each.");
+ top.AddStr ("<- \"[a\\u0301\\u0301\\u0328]\" using AddRune for each. Avoid use AddRune for combining sequences because may result with empty blocks at end.");
top.Move (0, ++i);
top.AddStr ("[a\u0301\u0301\u0328]<- \"[a\\u0301\\u0301\\u0328]\" using AddStr.");
top.Move (0, ++i);
@@ -82,6 +83,16 @@ public override void Main ()
top.AddStr ("[\U0001F468\U0001F469\U0001F9D2]<- \"[\\U0001F468\\U0001F469\\U0001F9D2]\" using AddStr.");
top.Move (0, ++i);
top.AddStr ("[\U0001F468\u200D\U0001F469\u200D\U0001F9D2]<- \"[\\U0001F468\\u200D\\U0001F469\\u200D\\U0001F9D2]\" using AddStr.");
+ top.Move (0, ++i);
+ top.AddStr ("[\U0001F468\u200D\U0001F469\u200D\U0001F467\u200D\U0001F466]<- \"[\\U0001F468\\u200D\\U0001F469\\u200D\\U0001F467\\u200D\\U0001F466]\" using AddStr.");
+ top.Move (0, ++i);
+ top.AddStr ("[\u0e32\u0e33]<- \"[\\u0e32\\u0e33]\" using AddStr.");
+ top.Move (0, ++i);
+ top.AddStr ("[\U0001F469\u200D\u2764\uFE0F\u200D\U0001F48B\u200D\U0001F468]<- \"[\\U0001F469\\u200D\\u2764\\uFE0F\\u200D\\U0001F48B\\u200D\\U0001F468]\" using AddStr.");
+ top.Move (0, ++i);
+ top.AddStr ("[\u0061\uFE20\u0065\uFE21]<- \"[\\u0061\\uFE20\\u0065\\uFE21]\" using AddStr.");
+ top.Move (0, ++i);
+ top.AddStr ("[\u1100\uD7B0]<- \"[\\u1100\\uD7B0]\" using AddStr.");
};
Application.Run (top);
diff --git a/Examples/UICatalog/Scenarios/LineDrawing.cs b/Examples/UICatalog/Scenarios/LineDrawing.cs
index cbc8dd27bb..217aea27b1 100644
--- a/Examples/UICatalog/Scenarios/LineDrawing.cs
+++ b/Examples/UICatalog/Scenarios/LineDrawing.cs
@@ -284,7 +284,7 @@ protected override bool OnDrawingContent ()
SetCurrentAttribute (c.Value.Value.Attribute ?? GetAttributeForRole (VisualRole.Normal));
// TODO: #2616 - Support combining sequences that don't normalize
- AddRune (c.Key.X, c.Key.Y, c.Value.Value.Rune);
+ AddStr (c.Key.X, c.Key.Y, c.Value.Value.Grapheme);
}
}
}
diff --git a/Examples/UICatalog/Scenarios/Sliders.cs b/Examples/UICatalog/Scenarios/Sliders.cs
index fae50c015d..8d954d1005 100644
--- a/Examples/UICatalog/Scenarios/Sliders.cs
+++ b/Examples/UICatalog/Scenarios/Sliders.cs
@@ -86,17 +86,17 @@ public void MakeSliders (View v, List