diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 6598562f..67ff6797 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -70,6 +70,7 @@ void Engine::onContentLoad() { for (auto& pack : content->getAllContentPacks()) { auto configFolder = pack.folder / "config"; auto bindsFile = configFolder / "bindings.toml"; + logger.info() << "loading bindings: " << bindsFile.string(); if (io::is_regular_file(bindsFile)) { input->getBindings().read( toml::parse( diff --git a/src/logic/scripting/lua/libs/libinput.cpp b/src/logic/scripting/lua/libs/libinput.cpp index eb605671..28f87f3c 100644 --- a/src/logic/scripting/lua/libs/libinput.cpp +++ b/src/logic/scripting/lua/libs/libinput.cpp @@ -50,8 +50,11 @@ static int l_add_callback(lua::State* L) { handler = input.addKeyCallback(key, actual_callback); } } - auto callback = [&gui, actual_callback]() -> bool { - if (!gui.isFocusCaught()) { + + bool isTopLevel = lua::toboolean(L, 4); + + auto callback = [&gui, actual_callback, isTopLevel]() -> bool { + if (isTopLevel || !gui.isFocusCaught()) { return actual_callback(); } return false;