From 9581bd5691183bc9aca1f59fc80e656f1ff82239 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Thu, 30 Dec 2004 12:54:04 +0000 Subject: Fix for bug #1091801 (ALL: Possible to create corrupt config file) svn-id: r16379 --- gui/EditTextWidget.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'gui/EditTextWidget.cpp') 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; -- cgit v1.2.3