aboutsummaryrefslogtreecommitdiff
path: root/gui/ListWidget.cpp
diff options
context:
space:
mode:
authorMax Horn2002-07-18 14:47:25 +0000
committerMax Horn2002-07-18 14:47:25 +0000
commit4968bc7a212584c231f04f262b198313e9d69ac7 (patch)
tree69d2417feb437d2dd5a1ac0c5ff11c0f83cde717 /gui/ListWidget.cpp
parent5317b473b2f41f30c0d89b9e8ffab40aa2d34672 (diff)
downloadscummvm-rg350-4968bc7a212584c231f04f262b198313e9d69ac7.tar.gz
scummvm-rg350-4968bc7a212584c231f04f262b198313e9d69ac7.tar.bz2
scummvm-rg350-4968bc7a212584c231f04f262b198313e9d69ac7.zip
painelf's key repeat patch
svn-id: r4586
Diffstat (limited to 'gui/ListWidget.cpp')
-rw-r--r--gui/ListWidget.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp
index 68d4817d04..612c8e4d32 100644
--- a/gui/ListWidget.cpp
+++ b/gui/ListWidget.cpp
@@ -47,6 +47,7 @@ ListWidget::ListWidget(Dialog *boss, int x, int y, int w, int h)
_selectedItem = -1;
_scrollBar = new ScrollBarWidget(boss, _x + _w, _y, kScrollBarWidth, _h);
_scrollBar->setTarget(this);
+ _currentKeyDown = 0;
// FIXME: This flag should come from widget definition
_editable = true;
@@ -138,8 +139,10 @@ void ListWidget::handleKeyDown(char key, int modifiers)
case '\n': // enter
case '\r':
if (_selectedItem >= 0) {
- _editMode = true;
- dirty = true;
+ if ((_currentKeyDown != '\n' && _currentKeyDown != '\r')) { // override continuous enter keydown
+ _editMode = true;
+ dirty = true;
+ }
}
break;
case 17: // up arrow
@@ -183,6 +186,13 @@ void ListWidget::handleKeyDown(char key, int modifiers)
_scrollBar->draw();
}
+ _currentKeyDown = key;
+}
+
+void ListWidget::handleKeyUp(char key, int modifiers)
+{
+ if (key == _currentKeyDown)
+ _currentKeyDown = 0;
}
void ListWidget::lostFocusWidget()