diff options
author | Jonas Suhr Christensen <jsc@umbraculum.org> | 2014-11-04 10:58:43 +0100 |
---|---|---|
committer | Jonas Suhr Christensen <jsc@umbraculum.org> | 2014-11-04 10:58:43 +0100 |
commit | 3a54a227a0217cc1c1b18e0789b5c3ac489254a9 (patch) | |
tree | e65efdcbb9f275a5964278de97bcc5b0ea460a24 | |
parent | 29ec8552826f64bfa8cad01a433306886328c522 (diff) |
Fixed: LineEdit, scroll when in end on line and arrow right typed.
-rw-r--r-- | plugingui/lineedit.cc | 11 |
1 files 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); |