summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2022-07-15 20:31:44 +0200
committerAdmiral H. Curtiss <pikachu025@gmail.com>2022-07-25 00:59:47 +0200
commit4d27022d0ec2bc45b39f7c10fce77c02467e3448 (patch)
tree20e63cd46201fa9ee3271a29c5bae5d5425430ed /Source/Core/InputCommon/ControllerInterface
parent8f0d702e5f9f72c543465f568a55874e19ad7b11 (diff)
Add hotkey for centering mouse in render window.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp10
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.h6
2 files changed, 16 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
index 1c4dc71da8..442e5502fa 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
@@ -421,6 +421,16 @@ Common::Vec2 ControllerInterface::GetWindowInputScale() const
return {1 / ar, 1.f};
}
+void ControllerInterface::SetMouseCenteringRequested(bool center)
+{
+ m_requested_mouse_centering = center;
+}
+
+bool ControllerInterface::IsMouseCenteringRequested() const
+{
+ return m_requested_mouse_centering.load();
+}
+
// Register a callback to be called when a device is added or removed (as from the input backends'
// hotplug thread), or when devices are refreshed
// Returns a handle for later removing the callback.
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
index 2f43cacc42..3a0276de41 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
@@ -106,6 +106,11 @@ public:
// Inputs based on window coordinates should be multiplied by this.
Common::Vec2 GetWindowInputScale() const;
+ // Request that the mouse cursor should be centered in the render window at the next opportunity.
+ void SetMouseCenteringRequested(bool center);
+
+ bool IsMouseCenteringRequested() const;
+
HotplugCallbackHandle RegisterDevicesChangedCallback(std::function<void(void)> callback);
void UnregisterDevicesChangedCallback(const HotplugCallbackHandle& handle);
void InvokeDevicesChangedCallbacks() const;
@@ -127,6 +132,7 @@ private:
std::atomic<int> m_populating_devices_counter;
WindowSystemInfo m_wsi;
std::atomic<float> m_aspect_ratio_adjustment = 1;
+ std::atomic<bool> m_requested_mouse_centering = false;
};
namespace ciface