From 269f133641fbe4490b70104c3ab61a3d8245482e Mon Sep 17 00:00:00 2001 From: KENNYSOFT Date: Fri, 1 Jan 2021 19:48:47 +0900 Subject: [PATCH] [KMS] TextRenderer: Support trim (Fix #54) --- WzComparerR2.Common/Text/TextRenderer.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/WzComparerR2.Common/Text/TextRenderer.cs b/WzComparerR2.Common/Text/TextRenderer.cs index c151238e..faf09723 100644 --- a/WzComparerR2.Common/Text/TextRenderer.cs +++ b/WzComparerR2.Common/Text/TextRenderer.cs @@ -119,7 +119,7 @@ private List SplitWords(Run run) } } len = (i--) - start; - runs.Add(new Run(start, len) { IsWhiteSpace = true }); + runs.Add(new Run(start, len) { IsWhiteSpace = true, ColorID = run.ColorID }); break; case '\r': @@ -249,8 +249,20 @@ private void DrawRuns(List runs, int width, ref int y, int lineHeight) } run = runs[r]; } + if (run.ColorID == colorID && run.ColorID == "" && run.Length == 1 && this.sb[run.StartIndex] == ' ') + { + end = run.StartIndex + run.Length; + if (++r >= runs.Count) + { + break; + } + run = runs[r]; + } flush(true); - start = run.StartIndex; + if (r < runs.Count) + { + start = run.StartIndex; + } xOffset = run.X; } if (width - curX < run.Width)