diff options
| author | Admiral H. Curtiss <pikachu025@gmail.com> | 2024-06-15 21:12:08 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-15 21:12:08 +0200 |
| commit | ed4a09fa56db3fb466e932c369fca0717d867472 (patch) | |
| tree | 96661f8e73f548b6497a88d2f3bf622976c2d82f /Source/Core/InputCommon/ControllerInterface | |
| parent | 56fd9c177c0c907a342eedf0a91df089b8f0eea1 (diff) | |
| parent | 42e73547eb9135ca9a93399e7300f49a5a0620f1 (diff) | |
Merge pull request #12850 from jordan-woyak/device-sorting
ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
6 files changed, 15 insertions, 1 deletions
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 <chrono> +#include <limits> #include <memory> #include <mutex> #include <optional> @@ -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<int>::max(); virtual int GetSortPriority() const { return 0; } const std::vector<Input*>& 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; |
