Index: ps/trunk/binaries/data/mods/public/gui/pregame/MainMenuItems.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/pregame/MainMenuItems.js +++ ps/trunk/binaries/data/mods/public/gui/pregame/MainMenuItems.js @@ -24,15 +24,23 @@ "tooltip": colorizeHotkey(translate("%(hotkey)s: View the structure tree of civilizations featured in 0 A.D."), "structree"), "hotkey": "structree", "onPress": () => { - Engine.PushGuiPage("page_structree.xml"); - } + let callback = data => { + if (data.nextPage) + Engine.PushGuiPage(data.nextPage, { "civ": data.civ }, callback); + }; + Engine.PushGuiPage("page_structree.xml", {}, callback); + }, }, { "caption": translate("History"), "tooltip": colorizeHotkey(translate("%(hotkey)s: Learn about the many civilizations featured in 0 A.D."), "civinfo"), "hotkey": "civinfo", "onPress": () => { - Engine.PushGuiPage("page_civinfo.xml"); + let callback = data => { + if (data.nextPage) + Engine.PushGuiPage(data.nextPage, { "civ": data.civ }, callback); + }; + Engine.PushGuiPage("page_civinfo.xml", {}, callback); } } ] Index: ps/trunk/source/gui/CGUI.cpp =================================================================== --- ps/trunk/source/gui/CGUI.cpp +++ ps/trunk/source/gui/CGUI.cpp @@ -71,7 +71,7 @@ { const char* hotkey = static_cast(ev->ev.user.data1); - if (m_GlobalHotkeys.count(hotkey)) + if (m_GlobalHotkeys.count(hotkey) && ev->ev.type == SDL_HOTKEYDOWN) { HotkeyInputHandler(ev); ret = IN_HANDLED;