diff --git a/Source/Core/InputCommon/ControllerInterface/CoreDevice.h b/Source/Core/InputCommon/ControllerInterface/CoreDevice.h index 5c7a8ed568..8dbbccf4b5 100644 --- a/Source/Core/InputCommon/ControllerInterface/CoreDevice.h +++ b/Source/Core/InputCommon/ControllerInterface/CoreDevice.h @@ -4,6 +4,7 @@ #pragma once #include +#include #include #include #include @@ -147,6 +148,7 @@ public: // A higher priority means it will be one of the first ones (smaller index), making it more // likely to be index 0, which is automatically set as the default device when there isn't one. // Every platform should have at least one device with priority >= 0. + static constexpr int DEFAULT_DEVICE_SORT_PRIORITY = std::numeric_limits::max(); virtual int GetSortPriority() const { return 0; } const std::vector& Inputs() const { return m_inputs; } diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp index 8d7f7c7ada..847eb72cca 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp @@ -281,7 +281,7 @@ std::string KeyboardMouse::GetSource() const // Give this device a higher priority to make sure it shows first int KeyboardMouse::GetSortPriority() const { - return 5; + return DEFAULT_DEVICE_SORT_PRIORITY; } bool KeyboardMouse::IsVirtualDevice() const diff --git a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.h b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.h index 07292f9039..7f526a07dd 100644 --- a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.h +++ b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.h @@ -69,6 +69,7 @@ public: std::string GetName() const override; std::string GetSource() const override; + int GetSortPriority() const override; private: void MainThreadInitialization(void* view); diff --git a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm index 9a8ddfc6df..58de0c302e 100644 --- a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm +++ b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm @@ -289,6 +289,11 @@ std::string KeyboardAndMouse::GetSource() const return Quartz::GetSourceName(); } +int KeyboardAndMouse::GetSortPriority() const +{ + return DEFAULT_DEVICE_SORT_PRIORITY; +} + ControlState KeyboardAndMouse::Cursor::GetState() const { return std::max(0.0, ControlState(m_axis) / (m_positive ? 1.0 : -1.0)); diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp index 057d774c5b..6bed306dca 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp @@ -421,6 +421,11 @@ std::string KeyboardMouse::GetSource() const return std::string(SOURCE_NAME); } +int KeyboardMouse::GetSortPriority() const +{ + return DEFAULT_DEVICE_SORT_PRIORITY; +} + KeyboardMouse::Key::Key(Display* const display, KeyCode keycode, const char* keyboard) : m_display(display), m_keyboard(keyboard), m_keycode(keycode) { diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h index 427c81b18a..f6fc108e10 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h @@ -120,6 +120,7 @@ public: std::string GetName() const override; std::string GetSource() const override; + int GetSortPriority() const override; private: Window m_window;