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;