diff options
author | Max Horn | 2002-07-18 14:47:25 +0000 |
---|---|---|
committer | Max Horn | 2002-07-18 14:47:25 +0000 |
commit | 4968bc7a212584c231f04f262b198313e9d69ac7 (patch) | |
tree | 69d2417feb437d2dd5a1ac0c5ff11c0f83cde717 /gui/ListWidget.cpp | |
parent | 5317b473b2f41f30c0d89b9e8ffab40aa2d34672 (diff) | |
download | scummvm-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.cpp | 14 |
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() |