diff --git a/include/events/signal_emitter.hpp b/include/events/signal_emitter.hpp index dbe570be..ecae99a8 100644 --- a/include/events/signal_emitter.hpp +++ b/include/events/signal_emitter.hpp @@ -1,6 +1,7 @@ #pragma once #include "common.hpp" +#include "components/logger.hpp" #include "events/signal_receiver.hpp" POLYBAR_NS @@ -25,12 +26,15 @@ class signal_emitter { template bool emit(const Signal& sig) { try { - for (auto&& item : g_signal_receivers.at(id())) { - if (item.second->on(sig)) { - return true; + if (g_signal_receivers.find(id()) != g_signal_receivers.end()) { + for (auto&& item : g_signal_receivers.at(id())) { + if (item.second->on(sig)) { + return true; + } } } - } catch (...) { + } catch (const std::exception& e) { + logger::make().err(e.what()); } return false;