aboutsummaryrefslogtreecommitdiff
path: root/gui/ListWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/ListWidget.cpp')
-rw-r--r--gui/ListWidget.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp
index b1e333b1bb..7d809938e2 100644
--- a/gui/ListWidget.cpp
+++ b/gui/ListWidget.cpp
@@ -286,7 +286,7 @@ bool ListWidget::handleKeyDown(Common::KeyState state) {
bool dirty = false;
int oldSelectedItem = _selectedItem;
- if (!_editMode && isprint((unsigned char)state.ascii)) {
+ if (!_editMode && state.keycode <= Common::KEYCODE_z && isprint((unsigned char)state.ascii)) {
// Quick selection mode: Go to first list item starting with this key
// (or a substring accumulated from the last couple key presses).
// Only works in a useful fashion if the list entries are sorted.
@@ -351,27 +351,33 @@ bool ListWidget::handleKeyDown(Common::KeyState state) {
}
break;
case Common::KEYCODE_UP:
+ case Common::KEYCODE_KP8:
if (_selectedItem > 0)
_selectedItem--;
break;
case Common::KEYCODE_DOWN:
+ case Common::KEYCODE_KP2:
if (_selectedItem < (int)_list.size() - 1)
_selectedItem++;
break;
case Common::KEYCODE_PAGEUP:
+ case Common::KEYCODE_KP9:
_selectedItem -= _entriesPerPage - 1;
if (_selectedItem < 0)
_selectedItem = 0;
break;
case Common::KEYCODE_PAGEDOWN:
+ case Common::KEYCODE_KP3:
_selectedItem += _entriesPerPage - 1;
if (_selectedItem >= (int)_list.size() )
_selectedItem = _list.size() - 1;
break;
case Common::KEYCODE_HOME:
+ case Common::KEYCODE_KP7:
_selectedItem = 0;
break;
case Common::KEYCODE_END:
+ case Common::KEYCODE_1:
_selectedItem = _list.size() - 1;
break;
default: