summaryrefslogtreecommitdiff
path: root/examples/apps/ide
diff options
context:
space:
mode:
Diffstat (limited to 'examples/apps/ide')
-rw-r--r--examples/apps/ide/src/fpg_textedit.pas25
1 files changed, 16 insertions, 9 deletions
diff --git a/examples/apps/ide/src/fpg_textedit.pas b/examples/apps/ide/src/fpg_textedit.pas
index d793cf66..b68c78b3 100644
--- a/examples/apps/ide/src/fpg_textedit.pas
+++ b/examples/apps/ide/src/fpg_textedit.pas
@@ -1674,19 +1674,26 @@ begin
if CaretPos.Y > pred(FLines.Count) then
Exit;
SLine := FLines[CaretPos.Y];
- if Length(SLine) >= CaretPos.X + 1 then
+ if SLine = '' then // short circut the code block
begin
- X := CaretPos.X + 1;
- Delete(SLine, X, 1);
- FLines[CaretPos.Y] := SLine;
+ FLines.Delete(CaretPos.Y);
end
else
begin
- if CaretPos.Y + 1 > pred(FLines.Count) then
- Exit;
- AddS := FLines[CaretPos.Y + 1];
- FLines[CaretPos.Y] := SLine + AddS;
- FLines.Delete(CaretPos.Y + 1);
+ if Length(SLine) >= CaretPos.X + 1 then
+ begin
+ X := CaretPos.X + 1;
+ Delete(SLine, X, 1);
+ FLines[CaretPos.Y] := SLine;
+ end
+ else
+ begin
+ if CaretPos.Y + 1 > pred(FLines.Count) then
+ Exit;
+ AddS := FLines[CaretPos.Y + 1];
+ FLines[CaretPos.Y] := SLine + AddS;
+ FLines.Delete(CaretPos.Y + 1);
+ end;
end;
consumed := True;
end;