diff options
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r-- | engines/sci/graphics/menu.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/engines/sci/graphics/menu.cpp b/engines/sci/graphics/menu.cpp index 8e8c1d64c2..9d92039111 100644 --- a/engines/sci/graphics/menu.cpp +++ b/engines/sci/graphics/menu.cpp @@ -424,8 +424,12 @@ reg_t GfxMenu::kernelSelect(reg_t eventObject, bool pauseSound) { default: while (itemIterator != itemEnd) { itemEntry = *itemIterator; + // Sierra actually did not check the modifier, they only checked the ascii code + // Which is why for example pressing Ctrl-I and Shift-Ctrl-I both brought up the inventory in QfG1 + // We still check the modifier, but we need to isolate the lower byte, because of a keyboard + // driver bug (see engine/kevent.cpp / kGetEvent) if (itemEntry->keyPress == keyPress && - itemEntry->keyModifier == keyModifier && + itemEntry->keyModifier == (keyModifier & 0xFF) && itemEntry->enabled) break; itemIterator++; |