summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/InputConfig.cpp
diff options
context:
space:
mode:
authorFiloppi <filippotarpini@hotmail.it>2021-06-07 19:31:38 +0300
committerFiloppi <filippotarpini@hotmail.it>2021-06-07 19:31:38 +0300
commit702f86ccc01fb1b9055e1acb77541f432a5cac57 (patch)
treed4460b9de51bb76182f466c551ffff176f247dd5 /Source/Core/InputCommon/InputConfig.cpp
parentedc18e60add3393aa0b7e79aa5b5e3ff443f34ff (diff)
InputCommon: fix 2nd+ controller not defaulting to the default device
Diffstat (limited to 'Source/Core/InputCommon/InputConfig.cpp')
-rw-r--r--Source/Core/InputCommon/InputConfig.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp
index 3b9fb7f809..7d7880da49 100644
--- a/Source/Core/InputCommon/InputConfig.cpp
+++ b/Source/Core/InputCommon/InputConfig.cpp
@@ -145,8 +145,23 @@ bool InputConfig::LoadConfig(bool isGC)
}
else
{
- m_controllers[0]->LoadDefaults(g_controller_interface);
- m_controllers[0]->UpdateReferences(g_controller_interface);
+ // Only load the default profile for the first controller,
+ // otherwise they would all share the same mappings and default device
+ if (m_controllers.size() > 0)
+ {
+ m_controllers[0]->LoadDefaults(g_controller_interface);
+ m_controllers[0]->UpdateReferences(g_controller_interface);
+ }
+ // Set the "default" default device for all other controllers, or they would end up
+ // 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)
+ {
+ m_controllers[i]->SetDefaultDevice(default_device_string);
+ }
+ }
return false;
}
}