From a77a04cc4c886c04bfe18e541cc73130fabd64c6 Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 21 Jun 2023 01:44:46 +0200 Subject: [PATCH] SynEdit: fix line-change indicator, when adding new lines (without breaking the current line). Issue #30152 --- components/synedit/synedittextbuffer.pp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/components/synedit/synedittextbuffer.pp b/components/synedit/synedittextbuffer.pp index 3b594aea51..96d62ca40b 100644 --- a/components/synedit/synedittextbuffer.pp +++ b/components/synedit/synedittextbuffer.pp @@ -1501,15 +1501,22 @@ end; procedure TSynEditStringList.EditLineBreak(LogX, LogY: Integer); var s: string; + ModEnd, ModStart: Integer; begin IncIsInEditAction; if Count = 0 then Add(''); s := Strings[LogY - 1]; + ModStart := LogY; + ModEnd := LogY + 1; + if LogX = 1 then + dec(ModEnd); if LogX - 1 < length(s) then - Strings[LogY - 1] := copy(s, 1, LogX - 1); + Strings[LogY - 1] := copy(s, 1, LogX - 1) + else + inc(ModStart); Insert(LogY, copy(s, LogX, length(s))); CurUndoList.AddChange(TSynEditUndoTxtLineBreak.Create(LogY)); - MarkModified(LogY, LogY + 1); + MarkModified(ModStart, ModEnd); SendNotification(senrEditAction, self, LogY, 1, LogX, 0, ''); DecIsInEditAction; end;