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