From 30d86801f6fc977e6047a7081a15b901f70faedc Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Thu, 18 Dec 2025 14:56:17 +0100 Subject: [PATCH] signal: check for trivially copyable use is_trivially_copyable instead because is_arithmetic_v exludes small POD structs, enums, and certain trivially copyable types. also add a if guard in emit if we have no listeners, no point emitting. --- include/hyprutils/signal/Signal.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/hyprutils/signal/Signal.hpp b/include/hyprutils/signal/Signal.hpp index 425c36f..6062810 100644 --- a/include/hyprutils/signal/Signal.hpp +++ b/include/hyprutils/signal/Signal.hpp @@ -26,10 +26,13 @@ namespace Hyprutils { template class CSignalT : public CSignalBase { template - using RefArg = std::conditional_t || std::is_arithmetic_v, T, const T&>; + using RefArg = std::conditional_t, T, const T&>; public: void emit(RefArg... args) { + if (m_vListeners.empty() && m_vStaticListeners.empty()) + return; + if constexpr (sizeof...(Args) == 0) emitInternal(nullptr); else {