From 0c61a1530f2da2571e8285df106b31af73843411 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 10 Jul 2023 14:13:23 +0200 Subject: plugins: fix config value usage in init --- src/config/ConfigManager.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/config/ConfigManager.cpp') diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 1bea33b5..b5fcf0fa 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -371,8 +371,10 @@ void CConfigManager::configSetValueSafe(const std::string& COMMAND, const std::s CONFIGENTRY = &it->second; } - if (!CONFIGENTRY) + if (!CONFIGENTRY) { + m_vFailedPluginConfigValues.emplace_back(std::make_pair<>(COMMAND, VALUE)); return; // silent ignore + } } else { CONFIGENTRY = &configValues.at(COMMAND); } @@ -1458,6 +1460,7 @@ void CConfigManager::loadConfigLoadVars() { setDefaultAnimationVars(); // reset anims m_vDeclaredPlugins.clear(); m_dLayerRules.clear(); + m_vFailedPluginConfigValues.clear(); // paths configPaths.clear(); @@ -2179,6 +2182,11 @@ void CConfigManager::addPluginConfigVar(HANDLE handle, const std::string& name, } (*CONFIGMAPIT->second)[name] = value; + + if (const auto IT = std::find_if(m_vFailedPluginConfigValues.begin(), m_vFailedPluginConfigValues.end(), [&](const auto& other) { return other.first == name; }); + IT != m_vFailedPluginConfigValues.end()) { + configSetValueSafe(IT->first, IT->second); + } } void CConfigManager::removePluginConfig(HANDLE handle) { -- cgit v1.2.3