summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-07-10 14:13:23 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-07-10 14:13:23 +0200
commit0c61a1530f2da2571e8285df106b31af73843411 (patch)
tree5fc966f9e350d19a057a5a1268b03001ffc468f0 /src/config/ConfigManager.cpp
parentda7ea2b33d232ff54645b6de58663934e38eff67 (diff)
plugins: fix config value usage in init
Diffstat (limited to 'src/config/ConfigManager.cpp')
-rw-r--r--src/config/ConfigManager.cpp10
1 files changed, 9 insertions, 1 deletions
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) {