From 08cc492698eaeaddf170275a741b0e8ebf24083d Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sat, 11 Apr 2026 18:36:29 +1000 Subject: [PATCH] fix: ensure tokens are not bound multiple times --- plugin/src/Caelestia/Config/config.cpp | 4 ++++ plugin/src/Caelestia/Config/config.hpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/plugin/src/Caelestia/Config/config.cpp b/plugin/src/Caelestia/Config/config.cpp index 7a8ea1f7..16be07a8 100644 --- a/plugin/src/Caelestia/Config/config.cpp +++ b/plugin/src/Caelestia/Config/config.cpp @@ -80,6 +80,9 @@ GlobalConfig* GlobalConfig::instance() { } void GlobalConfig::bindAppearanceTokens() { + if (m_tokensBound) + return; + auto* tokens = TokenConfig::instance(); if (!tokens) { qCDebug(lcConfig) << "GlobalConfig::bindAppearanceTokens: TokenConfig not yet available"; @@ -93,6 +96,7 @@ void GlobalConfig::bindAppearanceTokens() { m_appearance->padding()->bindTokens(tokenAppearance->padding()); m_appearance->font()->size()->bindTokens(tokenAppearance->fontSize()); m_appearance->anim()->durations()->bindTokens(tokenAppearance->animDurations()); + m_tokensBound = true; } GlobalConfig* GlobalConfig::create(QQmlEngine* engine, QJSEngine* jsEngine) { diff --git a/plugin/src/Caelestia/Config/config.hpp b/plugin/src/Caelestia/Config/config.hpp index 2df63a03..888caffc 100644 --- a/plugin/src/Caelestia/Config/config.hpp +++ b/plugin/src/Caelestia/Config/config.hpp @@ -60,6 +60,8 @@ private: friend class MonitorConfigManager; explicit GlobalConfig(QObject* parent = nullptr); explicit GlobalConfig(GlobalConfig* fallback, const QString& filePath, QObject* parent); + + bool m_tokensBound = false; }; class ConfigScope;