diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-07-10 14:13:23 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-07-10 14:13:23 +0200 |
| commit | 0c61a1530f2da2571e8285df106b31af73843411 (patch) | |
| tree | 5fc966f9e350d19a057a5a1268b03001ffc468f0 /src/config/ConfigManager.cpp | |
| parent | da7ea2b33d232ff54645b6de58663934e38eff67 (diff) | |
plugins: fix config value usage in init
Diffstat (limited to 'src/config/ConfigManager.cpp')
| -rw-r--r-- | src/config/ConfigManager.cpp | 10 |
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) { |
