From 7b476a6856cd66a71d3daa92cb9d52c23add5f02 Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 26 Mar 2012 01:39:28 +0000 Subject: [PATCH] ide: redo TSourceEditor.InsertLine (fixes bug #0021493) git-svn-id: trunk@36335 - --- ide/sourceeditor.pp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ide/sourceeditor.pp b/ide/sourceeditor.pp index 6968df2a65..49d477acd7 100644 --- a/ide/sourceeditor.pp +++ b/ide/sourceeditor.pp @@ -4271,12 +4271,18 @@ procedure TSourceEditor.InsertLine(StartLine: Integer; const NewText: String; aKeepMarks: Boolean); const MarksMode: array[Boolean] of TSynMarksAdjustMode = (smaMoveUp, smaKeep); +var + Pt: TPoint; begin if not ReadOnly then - FEditor.SetTextBetweenPoints( - Point(1, StartLine), - Point(1, StartLine), - NewText + LineEnding, [], scamEnd, MarksMode[aKeepMarks]); + begin + if StartLine > 1 then + Pt := Point(Length(FEditor.Lines[StartLine - 2]) + 1, StartLine - 1) + else + Pt := Point(1, 1); + FEditor.SetTextBetweenPoints(Pt, Pt, + LineEnding + NewText, [], scamEnd, MarksMode[aKeepMarks]); + end; end; procedure TSourceEditor.ReplaceLines(StartLine, EndLine: integer;