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.
This commit is contained in:
		@@ -894,9 +894,10 @@ void Config::WriteSettingGeneric(const Settings::BasicSetting* const setting) {
 | 
				
			|||||||
            WriteBooleanSetting(std::string(key).append("\\use_global"), setting->UsingGlobal());
 | 
					            WriteBooleanSetting(std::string(key).append("\\use_global"), setting->UsingGlobal());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (global || !setting->UsingGlobal()) {
 | 
					        if (global || !setting->UsingGlobal()) {
 | 
				
			||||||
 | 
					            auto value = global ? setting->ToStringGlobal() : setting->ToString();
 | 
				
			||||||
            WriteBooleanSetting(std::string(key).append("\\default"),
 | 
					            WriteBooleanSetting(std::string(key).append("\\default"),
 | 
				
			||||||
                                setting->ToString() == setting->DefaultToString());
 | 
					                                value == setting->DefaultToString());
 | 
				
			||||||
            WriteStringSetting(key, setting->ToString());
 | 
					            WriteStringSetting(key, value);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    } else if (global) {
 | 
					    } else if (global) {
 | 
				
			||||||
        WriteBooleanSetting(std::string(key).append("\\default"),
 | 
					        WriteBooleanSetting(std::string(key).append("\\default"),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user