[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 3/4] kedit: Automatisch erzeugte Einrueckung bei Leerzeilen loeschen
+ kedit: Wenn zweimal direkt Enter gedrueckt wird, wird zuneachst die
richtige Einrueckung beibehalten. Beim zweiten Enter wird die
Einrueckung der ersten Zeile wieder geloescht, damit eine saubere
Leerzeile entsteht.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/modules/pas/kedit/kedit.pas | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/src/modules/pas/kedit/kedit.pas b/src/modules/pas/kedit/kedit.pas
index 420cc9e..3542b07 100644
--- a/src/modules/pas/kedit/kedit.pas
+++ b/src/modules/pas/kedit/kedit.pas
@@ -85,10 +85,19 @@ end;
procedure Edit;
+ var
+ autoindent: boolean;
+ old_autoindent: boolean;
+
procedure DoInput;
var
key: UnicodeChar;
begin
+ // old_autoindent ist nur gesetzt, wenn schon der letzte Tastendruck
+ // ein Enter war.
+ old_autoindent := autoindent;
+ autoindent := false;
+
with state do begin
key := ReadUnicodeChar;
case key of
@@ -149,10 +158,18 @@ procedure Edit;
cursX := 1;
if length(text^[cursY-1]) > 0 then begin
+ autoindent := true;
while (cursX <= MaxColumns) and (text^[cursY-1, cursX] = ' ') do begin
text^[cursY] := ' ' + text^[cursY];
inc(cursX);
end;
+
+ if old_autoindent then begin
+ if text^[cursY-1] = Space(length(text^[cursY-1])) then begin
+ text^[cursY-1] := '';
+ end;
+ end;
+
end;
changed:=true;
@@ -194,6 +211,7 @@ procedure Edit;
begin
exitEditor := false;
redrawEditor := true;
+ autoindent := false;
repeat
if redrawEditor then begin
DrawEditor(@state);
--
1.6.0.2