[Scummvm-git-logs] scummvm master -> 9d045f76ac0c11caffed39083c0d8fb8eabc9d1e
bluegr
noreply at scummvm.org
Wed Sep 16 18:17:41 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
9d045f76ac GUI: Let Ctrl and Alt hotkeys through when a list has focus
Commit: 9d045f76ac0c11caffed39083c0d8fb8eabc9d1e
https://github.com/scummvm/scummvm/commit/9d045f76ac0c11caffed39083c0d8fb8eabc9d1e
Author: objectinspace (amockery at gmail.com)
Date: 2026-09-16T21:17:36+03:00
Commit Message:
GUI: Let Ctrl and Alt hotkeys through when a list has focus
ListWidget's quick selection mode claimed every printable key without
checking for modifiers, and reported the key as handled. Since Dialog
gives the focused widget first refusal on key presses, this meant that
no dialog hotkey worked while a list held the focus. In the launcher,
where the game list has the focus by default, Ctrl+O and the other
shortcuts did nothing at all.
Skip quick selection for keys held with Ctrl or Alt, so that they reach
the hotkey handling in Dialog::handleKeyDown().
Assisted-by: Claude:claude-opus-5
Changed paths:
gui/widgets/list.cpp
diff --git a/gui/widgets/list.cpp b/gui/widgets/list.cpp
index 431ee178c3c..b5664687ace 100644
--- a/gui/widgets/list.cpp
+++ b/gui/widgets/list.cpp
@@ -577,10 +577,13 @@ bool ListWidget::handleKeyDown(Common::KeyState state) {
bool dirty = false;
int oldSelectedItem = _selectedItem;
- if (!_editMode && state.keycode <= Common::KEYCODE_z && Common::isPrint(state.ascii)) {
+ if (!_editMode && !(state.flags & (Common::KBD_CTRL | Common::KBD_ALT)) &&
+ state.keycode <= Common::KEYCODE_z && Common::isPrint(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.
+ // Keys held with Ctrl or Alt are left alone, so that they can still
+ // reach the dialog's hotkey handling.
uint32 time = g_system->getMillis();
if (_quickSelectTime < time) {
_quickSelectStr = (char)state.ascii;
More information about the Scummvm-git-logs
mailing list