From 87da7bdf17a2a9446ca92b19e5a3f20aba7ea4b5 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 15 Jun 2026 02:23:35 +0100 Subject: [PATCH] Repair Gjallar continuous marquee ribbon writes --- src/Gjallar/Program.cs | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/Gjallar/Program.cs b/src/Gjallar/Program.cs index 7bcc59a..03b442e 100644 --- a/src/Gjallar/Program.cs +++ b/src/Gjallar/Program.cs @@ -1323,20 +1323,26 @@ internal sealed class FrameDocument return; } - var row = ribbon.Row[path]; - var forward = ribbon.Forward[path]; - var take = 1; - while (textIndex + take < text.Length && path + take < ribbon.Count && ribbon.Row[path + take] == row) + while (textIndex < text.Length && path < ribbon.Count) { - take++; - } + var row = ribbon.Row[path]; + var forward = ribbon.Forward[path]; + var take = 0; + while (textIndex + take < text.Length && path + take < ribbon.Count && ribbon.Row[path + take] == row) + { + take++; + } - for (var index = 0; index < take; index++) - { - var sourceIndex = forward - ? textIndex + index - : textIndex + take - index - 1; - characters[path + index] = text[sourceIndex]; + for (var index = 0; index < take; index++) + { + var sourceIndex = forward + ? textIndex + index + : textIndex + take - index - 1; + characters[path + index] = text[sourceIndex]; + } + + textIndex += take; + path += take; } }