[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tyndur-devel] [PATCH 3/4] kedit: Automatisch erzeugte Einrueckung bei Leerzeilen loeschen



On Fri, Jul 31, 2009 at 01:10:47PM +0200, Kevin Wolf wrote:
> + 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);

Acked-by: Alexander Siol <alex@xxxxxxxxxx>

> -- 
> 1.6.0.2
> 
> _______________________________________________
> tyndur-devel mailing list
> tyndur-devel@xxxxxxxxxx
> http://list.tyndur.org/mailman/listinfo/tyndur-devel

Attachment: signature.asc
Description: Digital signature