aboutsummaryrefslogtreecommitdiff
path: root/gui/EditTextWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/EditTextWidget.cpp')
-rw-r--r--gui/EditTextWidget.cpp8
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;