InputCommon: fix InputConfig::LoadConfig() not always replacing emu controllers values
If InputConfig::LoadConfig() was called once with a non empty/customized config, then called again after manually deleting the config (dolphin calls LoadConfig() every time it opens the mapping widget), the second load would fail to clear the values on any non first EmulatedController and would instead keep the previous config values despite it being deleted (while it would instead correctly default the first EmulatedController). This is not a big bug though the code is better now.
This commit is contained in:
parent
57d251c2f0
commit
689545a795
|
@ -150,22 +150,18 @@ bool InputConfig::LoadConfig(InputClass type)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Only load the default profile for the first controller,
|
// Only load the default profile for the first controller and clear the others,
|
||||||
// otherwise they would all share the same mappings and default device
|
// otherwise they would all share the same mappings on the same (default) device
|
||||||
if (m_controllers.size() > 0)
|
if (m_controllers.size() > 0)
|
||||||
{
|
{
|
||||||
m_controllers[0]->LoadDefaults(g_controller_interface);
|
m_controllers[0]->LoadDefaults(g_controller_interface);
|
||||||
m_controllers[0]->UpdateReferences(g_controller_interface);
|
m_controllers[0]->UpdateReferences(g_controller_interface);
|
||||||
}
|
}
|
||||||
// Set the "default" default device for all other controllers, or they would end up
|
for (size_t i = 1; i < m_controllers.size(); ++i)
|
||||||
// having no default device (which is fine, but might be confusing for some users)
|
|
||||||
const std::string& default_device_string = g_controller_interface.GetDefaultDeviceString();
|
|
||||||
if (!default_device_string.empty())
|
|
||||||
{
|
{
|
||||||
for (size_t i = 1; i < m_controllers.size(); ++i)
|
// Calling the base version just clears all settings without overwriting them with a default
|
||||||
{
|
m_controllers[i]->EmulatedController::LoadDefaults(g_controller_interface);
|
||||||
m_controllers[i]->SetDefaultDevice(default_device_string);
|
m_controllers[i]->UpdateReferences(g_controller_interface);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue