SynEdit: fixed space-trimmer. Don't mark as changed when lock did not make changes.

This commit is contained in:
Martin 2024-01-21 00:33:33 +01:00
parent c4483bf7f4
commit 09b29a5e63

View File

@ -770,6 +770,7 @@ procedure TSynEditStringTrimmingList.TrimAfterLock;
var var
i, index, slen: Integer; i, index, slen: Integer;
ltext: String; ltext: String;
Changed: Boolean;
begin begin
if (not fEnabled) then exit; if (not fEnabled) then exit;
FIsTrimming := True; FIsTrimming := True;
@ -788,8 +789,7 @@ begin
IncViewChangeStamp; IncViewChangeStamp;
FIsTrimming := True; FIsTrimming := True;
BeginUpdate; BeginUpdate;
if fLockList.Count > 0 then Changed := False;
IncViewChangeStamp;
try try
for i := 0 to fLockList.Count-1 do begin for i := 0 to fLockList.Count-1 do begin
index := fLockList.Entries[i].LineIndex; index := fLockList.Entries[i].LineIndex;
@ -799,9 +799,12 @@ begin
// TODO: Avoid triggering the highlighter // TODO: Avoid triggering the highlighter
NextLines[index] := ltext; // trigger OnPutted, so the line gets repainted NextLines[index] := ltext; // trigger OnPutted, so the line gets repainted
MaybeAddUndoForget(Index+1, fLockList.Entries[i].TrimmedSpaces); MaybeAddUndoForget(Index+1, fLockList.Entries[i].TrimmedSpaces);
Changed := True;
end; end;
end; end;
finally finally
if Changed then
IncViewChangeStamp;
EndUpdate; EndUpdate;
FIsTrimming := False; FIsTrimming := False;
end; end;