From 3a54a227a0217cc1c1b18e0789b5c3ac489254a9 Mon Sep 17 00:00:00 2001 From: Jonas Suhr Christensen Date: Tue, 4 Nov 2014 10:58:43 +0100 Subject: Fixed: LineEdit, scroll when in end on line and arrow right typed. --- plugingui/lineedit.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugingui/lineedit.cc b/plugingui/lineedit.cc index 46354bb..bd827d3 100644 --- a/plugingui/lineedit.cc +++ b/plugingui/lineedit.cc @@ -91,7 +91,6 @@ void GUI::LineEdit::buttonEvent(ButtonEvent *e) { if(readOnly()) return; - if(e->direction == 1) { for(int i = 0; i < (int)_visibletext.length(); i++) { if(e->x < (int)(font.textWidth(_visibletext.substr(0, i)) + BORDER)) { @@ -184,12 +183,16 @@ void GUI::LineEdit::repaintEvent(GUI::RepaintEvent *e) else if(walkstate == WALK_RIGHT) { int d = (offsetpos < _text.length()) ? 1 : 0; _visibletext = _text.substr(offsetpos + d); - offsetpos = offsetpos + d; + + if(pos < _text.length()) offsetpos = offsetpos + d; } else { _visibletext = _text; offsetpos = 0; } + +// if(offsetpos > _text.length()) offsetpos = _text.length(); + while(true) { int textwidth = font.textWidth(_visibletext); if(textwidth > w - BORDER - 4 + 3) { @@ -217,6 +220,10 @@ void GUI::LineEdit::repaintEvent(GUI::RepaintEvent *e) } } + printf("OFFSETPOS: %d\n", offsetpos); + printf("POS: %d\n", pos); + printf("TEXTLENGTH: %d\n", _text.length()); + walkstate = NOOP; p.drawText(BORDER - 4 + 3, height()/2+5 + 1 + 1 + 1, font, _visibletext); -- cgit v1.2.3