2
0
Эх сурвалжийг харах

[Label] When rendering, do not use byte count as the visible width, fixes https://github.com/migueldeicaza/gui.cs/issues/130

miguel 6 жил өмнө
parent
commit
4fcaf39088

+ 8 - 4
Terminal.Gui/Views/Label.cs

@@ -96,10 +96,14 @@ namespace Terminal.Gui {
 
 		static ustring ClipAndJustify (ustring str, int width, TextAlignment talign)
 		{
-			int slen = str.Length;
-			if (slen > width)
-				return str [0, width];
-			else {
+			int slen = str.RuneCount;
+			if (slen > width){
+				var uints = str.ToRunes (width);
+				var runes = new Rune [uints.Length];
+				for (int i = 0; i < uints.Length; i++)
+					runes [i] = uints [i];
+				return ustring.Make (runes);
+			} else {
 				if (talign == TextAlignment.Justified) {
 					// TODO: ustring needs this
 			               	var words = str.ToString ().Split (whitespace, StringSplitOptions.RemoveEmptyEntries);