summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2024-06-15 21:12:08 +0200
committerGitHub <noreply@github.com>2024-06-15 21:12:08 +0200
commited4a09fa56db3fb466e932c369fca0717d867472 (patch)
tree96661f8e73f548b6497a88d2f3bf622976c2d82f /Source/Core/InputCommon/ControllerInterface
parent56fd9c177c0c907a342eedf0a91df089b8f0eea1 (diff)
parent42e73547eb9135ca9a93399e7300f49a5a0620f1 (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')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/CoreDevice.h2
-rw-r--r--Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp2
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.h1
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm5
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp5
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h1
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;