summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
diff options
context:
space:
mode:
authormitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-09-28 22:20:48 -0700
committermitaclaw <140017135+mitaclaw@users.noreply.github.com>2025-03-09 13:26:38 -0700
commitc9f589faa532105c24f4f6343cadc7f882e251a5 (patch)
treeb481b7d429ac379ee64378dbc697e99e75ada8d2 /Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
parent8b9f92a0af0f467ffa0bde5f4e6239e57fbd4b5e (diff)
Modernize `std::stable_sort` with ranges and projections
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
index 10dd492ceb..b8651c608d 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
@@ -273,18 +273,14 @@ bool ControllerInterface::AddDevice(std::shared_ptr<ciface::Core::Device> device
NOTICE_LOG_FMT(CONTROLLERINTERFACE, "Added device: {}", device->GetQualifiedName());
m_devices.emplace_back(std::move(device));
- // We can't (and don't want) to control the order in which devices are added, but we
- // need their order to be consistent, and we need the same one to always be the first, where
- // present (the keyboard and mouse device usually). This is because when defaulting a
- // controller profile, it will automatically select the first device in the list as its default.
- std::stable_sort(m_devices.begin(), m_devices.end(),
- [](const std::shared_ptr<ciface::Core::Device>& a,
- const std::shared_ptr<ciface::Core::Device>& b) {
- // It would be nice to sort devices by Source then Name then ID but it's
- // better to leave them sorted by the add order, which also avoids breaking
- // the order on other platforms that are less tested.
- return a->GetSortPriority() > b->GetSortPriority();
- });
+ // We can't (and don't want) to control the order in which devices are added, but we need
+ // their order to be consistent, and we need the same one to always be the first, where present
+ // (the keyboard and mouse device usually). This is because when defaulting a controller
+ // profile, it will automatically select the first device in the list as its default. It would
+ // be nice to sort devices by Source then Name then ID, but it's better to leave them sorted by
+ // the add order. This also avoids breaking the order on other platforms that are less tested.
+ std::ranges::stable_sort(m_devices, std::ranges::greater{},
+ &ciface::Core::Device::GetSortPriority);
}
if (!m_populating_devices_counter)