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

Re: [tyndur-devel] [PATCH 4/4] kedit: Erweitertes Pos1/Ende



On Fri, Jul 31, 2009 at 01:10:48PM +0200, Kevin Wolf wrote:
> + kedit: Pos1 springt erst an den Anfang der Zeile, beim zweiten
>   Tastendruck zum ersten Nicht-Leerzeichen. Ende geht analog.
> 
> Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
> ---
>  src/modules/pas/kedit/kedit_input.pas |   28 ++++++++++++++++++++++++++--
>  1 files changed, 26 insertions(+), 2 deletions(-)
> 
> diff --git a/src/modules/pas/kedit/kedit_input.pas b/src/modules/pas/kedit/kedit_input.pas
> index 030ba95..aaf5683 100644
> --- a/src/modules/pas/kedit/kedit_input.pas
> +++ b/src/modules/pas/kedit/kedit_input.pas
> @@ -172,13 +172,37 @@ end;
>  
>  procedure uih_cursor_to_start_of_line(state: pkedit_state);
>  begin
> -    state^.cursX := 1;
> +    with state^ do begin
> +        if cursX = 1 then begin
> +            // Wenn der Cursor schon auf der ersten Spalte ist, zum ersten
> +            // Nichtleerzeichen auf der Zeile springen
> +            while (length(text^[cursY]) > cursX)
> +                and (text^[cursY][cursX] = ' ')
> +            do begin
> +                // Ansonsten Cursor in die erste Spalte setzen
> +                Inc(cursX)
> +            end;
> +        end else begin
> +            cursX := 1;
> +        end;
> +    end;
>  end;
>  
>  procedure uih_cursor_to_end_of_line(state: pkedit_state);
> +var
> +    text_end: integer;
>  begin
>      with state^ do begin
> -        cursX := Length(RTrim(text^[cursY]));
> +        text_end := Length(RTrim(text^[cursY]));
> +        if cursX = text_end + 1 then begin
> +            // Wenn der Cursor schon hinter dem letzten Zeichen des Texts (ohne
> +            // abschliessende Leerzeichen) steht, ganz ans Ende der Zeile
> +            // springen
> +            cursX := Length(text^[cursY]);
> +        end else begin
> +            // Ansonsten Cursor ans Ende des Texts setzen
> +            cursX := text_end;
> +        end;
>          if cursX < 255 then Inc(cursX);
>      end;
>  end;

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