From fa04dea7c4f0d5dba86cdec23d6e8262752983e9 Mon Sep 17 00:00:00 2001 From: t895 Date: Wed, 3 Jan 2024 22:16:54 -0500 Subject: frontend_common: config: Only write setting related to opened config file If we tried to write a switchable setting to config that was not using global in the global config instance, we could write the per-game setting accidentally. This ensures that we always use the global setting for global config and the currently applied setting for custom config. --- src/frontend_common/config.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/frontend_common/config.cpp b/src/frontend_common/config.cpp index 51576b4ee..678e27ef8 100644 --- a/src/frontend_common/config.cpp +++ b/src/frontend_common/config.cpp @@ -894,9 +894,10 @@ void Config::WriteSettingGeneric(const Settings::BasicSetting* const setting) { WriteBooleanSetting(std::string(key).append("\\use_global"), setting->UsingGlobal()); } if (global || !setting->UsingGlobal()) { + auto value = global ? setting->ToStringGlobal() : setting->ToString(); WriteBooleanSetting(std::string(key).append("\\default"), - setting->ToString() == setting->DefaultToString()); - WriteStringSetting(key, setting->ToString()); + value == setting->DefaultToString()); + WriteStringSetting(key, value); } } else if (global) { WriteBooleanSetting(std::string(key).append("\\default"), -- cgit v1.2.3