SynEdit: fix scroll pos after folding. issue #0029534

git-svn-id: trunk@51574 -
This commit is contained in:
martin 2016-02-10 16:00:21 +00:00
parent c57f581e7c
commit 14cd12d46f
2 changed files with 19 additions and 2 deletions

View File

@ -6938,9 +6938,15 @@ begin
DefaultSelectionMode := SEL_MODE[Command];
end;
EcFoldLevel1..EcFoldLevel9:
FoldAll(Command - EcFoldLevel1);
begin
FoldAll(Command - EcFoldLevel1);
FCaret.Touch;
end;
EcFoldLevel0:
UnfoldAll;
begin
UnfoldAll;
FCaret.Touch;
end;
EcFoldCurrent:
begin
CY := FFoldedLinesView.ExpandedLineForBlockAtLine(CaretY);
@ -6950,7 +6956,10 @@ begin
end;
end;
EcUnFoldCurrent:
begin
FFoldedLinesView.UnFoldAtTextIndex(CaretY-1);
FCaret.Touch;
end;
EcToggleMarkupWord:
FMarkupHighCaret.ToggleCurrentWord;
ecZoomOut, ecZoomIn: begin

View File

@ -325,6 +325,7 @@ type
procedure IncAutoMoveOnEdit;
procedure DecAutoMoveOnEdit;
procedure ChangeOnTouch;
procedure Touch(aChangeOnTouch: Boolean = False);
function WasAtLineChar(aPoint: TPoint): Boolean;
function WasAtLineByte(aPoint: TPoint): Boolean;
@ -1339,6 +1340,13 @@ begin
FTouched := False;
end;
procedure TSynEditCaret.Touch(aChangeOnTouch: Boolean);
begin
if aChangeOnTouch then
ChangeOnTouch;
FTouched := True;
end;
function TSynEditCaret.WasAtLineChar(aPoint: TPoint): Boolean;
begin