diff options
Diffstat (limited to 'gui/EditTextWidget.cpp')
-rw-r--r-- | gui/EditTextWidget.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gui/EditTextWidget.cpp b/gui/EditTextWidget.cpp index c92cefb4ab..6ae43d0100 100644 --- a/gui/EditTextWidget.cpp +++ b/gui/EditTextWidget.cpp @@ -67,13 +67,16 @@ bool EditTextWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) { break; case 27: // escape _label = _backupString; + if (_pos >= _label.size()) + _pos = _label.size() - 1; _boss->releaseFocus(); dirty = true; break; case 8: // backspace - _label.deleteLastChar(); - if (_pos > 0) + if (_pos > 0) { _pos--; + _label.deleteChar(_pos); + } dirty = true; break; case 127: // delete @@ -88,7 +91,6 @@ bool EditTextWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) { if (_pos < _label.size()) _pos++; break; - break; case 256 + 22: // home _pos = 0; break; |