fix input.add_callback

This commit is contained in:
MihailRis 2025-01-16 03:46:56 +03:00
parent b59752bc84
commit 44b9e21d46

View File

@ -45,11 +45,6 @@ static int l_add_callback(lua::State* L) {
handler = Events::keyCallbacks[key].add(actual_callback);
}
}
const auto& bind = Events::bindings.find(bindname);
if (bind == Events::bindings.end()) {
throw std::runtime_error("unknown binding " + util::quote(bindname));
}
auto callback = [=]() -> bool {
if (!scripting::engine->getGUI()->isFocusCaught()) {
return actual_callback();
@ -57,6 +52,10 @@ static int l_add_callback(lua::State* L) {
return false;
};
if (handler == nullptr) {
const auto& bind = Events::bindings.find(bindname);
if (bind == Events::bindings.end()) {
throw std::runtime_error("unknown binding " + util::quote(bindname));
}
handler = bind->second.onactived.add(callback);
}