aboutsummaryrefslogtreecommitdiff
path: root/gui/EditTextWidget.cpp
diff options
context:
space:
mode:
authorMax Horn2004-12-30 12:54:04 +0000
committerMax Horn2004-12-30 12:54:04 +0000
commit9581bd5691183bc9aca1f59fc80e656f1ff82239 (patch)
tree885802d1bafcd71024f8fc5aa0b86be824707857 /gui/EditTextWidget.cpp
parent8531caf82282305e96769cea1a95aaa15ce5c57a (diff)
downloadscummvm-rg350-9581bd5691183bc9aca1f59fc80e656f1ff82239.tar.gz
scummvm-rg350-9581bd5691183bc9aca1f59fc80e656f1ff82239.tar.bz2
scummvm-rg350-9581bd5691183bc9aca1f59fc80e656f1ff82239.zip
Fix for bug #1091801 (ALL: Possible to create corrupt config file)
svn-id: r16379
Diffstat (limited to 'gui/EditTextWidget.cpp')
-rw-r--r--gui/EditTextWidget.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/gui/EditTextWidget.cpp b/gui/EditTextWidget.cpp
index ea24035b11..076a5da1e1 100644
--- a/gui/EditTextWidget.cpp
+++ b/gui/EditTextWidget.cpp
@@ -71,6 +71,14 @@ void EditTextWidget::handleMouseDown(int x, int y, int button, int clickCount){
draw();
}
+bool EditTextWidget::tryInsertChar(char c, int pos) {
+ if (isprint(c)) {
+ _label.insertChar(c, pos);
+ return true;
+ }
+ return false;
+}
+
bool EditTextWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
bool handled = true;
bool dirty = false;
@@ -126,9 +134,8 @@ bool EditTextWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
dirty = adjustOffset();
break;
default:
- if (isprint((char)ascii)) {
- _label.insertChar((char)ascii, _pos++);
- //_label += (char)ascii;
+ if (tryInsertChar((char)ascii, _pos)) {
+ _pos++;
dirty = true;
} else {
handled = false;