From d63ad4c2e3d70200a778b3ece3b623729ae42861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Andersson?= Date: Wed, 18 Oct 2023 18:19:27 +0200 Subject: [PATCH] GRAPHICS: MACGUI: Don't filter keypresses in processMenuShortCut() This is already done in keyEvent(), which is the only place where processMenuShortCut() is called. This allows using Alt- as shortcut, which is consistent with how the Mac emulators I've tried does it. --- graphics/macgui/macmenu.cpp | 30 +++++++++++++++--------------- graphics/macgui/macmenu.h | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp index 3f92fdb5cf5..ceee71b7761 100644 --- a/graphics/macgui/macmenu.cpp +++ b/graphics/macgui/macmenu.cpp @@ -1236,7 +1236,7 @@ bool MacMenu::keyEvent(Common::Event &event) { if (event.kbd.flags & (Common::KBD_ALT | Common::KBD_CTRL | Common::KBD_META)) { if (event.kbd.ascii >= 0x20 && event.kbd.ascii <= 0x7f) { - return processMenuShortCut(event.kbd.flags, event.kbd.ascii); + return processMenuShortCut(event.kbd.ascii); } } @@ -1471,23 +1471,23 @@ bool MacMenu::mouseRelease(int x, int y) { return true; } -bool MacMenu::processMenuShortCut(byte flags, uint16 ascii) { +bool MacMenu::processMenuShortCut(uint16 ascii) { ascii = tolower(ascii); - if (flags & (Common::KBD_CTRL | Common::KBD_META)) { - for (uint i = 0; i < _items.size(); i++) - if (_items[i]->submenu != nullptr) { - for (uint j = 0; j < _items[i]->submenu->items.size(); j++) - if (_items[i]->submenu->items[j]->enabled && tolower(_items[i]->submenu->items[j]->shortcut) == ascii) { - if (_items[i]->submenu->items[j]->unicode) { - if (checkCallback(true)) - (*_unicodeccallback)(_items[i]->submenu->items[j]->action, _items[i]->submenu->items[j]->unicodeText, _cdata); - } else { - if (checkCallback()) - (*_ccallback)(_items[i]->submenu->items[j]->action, _items[i]->submenu->items[j]->text, _cdata); - } - return true; + for (uint i = 0; i < _items.size(); i++) { + if (_items[i]->submenu != nullptr) { + for (uint j = 0; j < _items[i]->submenu->items.size(); j++) { + if (_items[i]->submenu->items[j]->enabled && tolower(_items[i]->submenu->items[j]->shortcut) == ascii) { + if (_items[i]->submenu->items[j]->unicode) { + if (checkCallback(true)) + (*_unicodeccallback)(_items[i]->submenu->items[j]->action, _items[i]->submenu->items[j]->unicodeText, _cdata); + } else { + if (checkCallback()) + (*_ccallback)(_items[i]->submenu->items[j]->action, _items[i]->submenu->items[j]->text, _cdata); } + return true; + } + } } } diff --git a/graphics/macgui/macmenu.h b/graphics/macgui/macmenu.h index 455ce5a1c33..be27d80b604 100644 --- a/graphics/macgui/macmenu.h +++ b/graphics/macgui/macmenu.h @@ -202,7 +202,7 @@ private: bool mouseRelease(int x, int y); bool mouseMove(int x, int y); - bool processMenuShortCut(byte flags, uint16 ascii); + bool processMenuShortCut(uint16 ascii); void drawSubMenuArrow(ManagedSurface *dst, int x, int y, int color); bool contains(int x, int y);