summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
authorLC <mathew1800@gmail.com>2021-01-03 11:26:11 -0500
committerGitHub <noreply@github.com>2021-01-03 11:26:11 -0500
commit4b9259d6913e582156e9d1147ece4fa646709e58 (patch)
tree7d7b616d57ac0dcdd50b761c86e401747df3a3d8 /Source/Core/InputCommon/ControllerInterface
parentf477a10e65febd146746b02b723d62bdfe576342 (diff)
parent8813ba69f5594180923cb2e2699ecd270a9cbd71 (diff)
Merge pull request #9415 from Filoppi/patch-8
Fix cursor going to +infinite if the window size was 0
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp6
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm4
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp4
3 files changed, 7 insertions, 7 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp
index 5aca9f5280..e5e10802cc 100644
--- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp
@@ -126,9 +126,9 @@ void KeyboardMouse::UpdateCursorInput()
RECT rect;
GetClientRect(m_hwnd, &rect);
- // Width and height are the size of the rendering window.
- const auto win_width = rect.right - rect.left;
- const auto win_height = rect.bottom - rect.top;
+ // Width and height are the size of the rendering window. They could be 0
+ const auto win_width = std::max(rect.right - rect.left, 1l);
+ const auto win_height = std::max(rect.bottom - rect.top, 1l);
const auto window_scale = g_controller_interface.GetWindowInputScale();
diff --git a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm
index d594ac9e5f..216ae58e6c 100644
--- a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm
+++ b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm
@@ -188,8 +188,8 @@ void KeyboardAndMouse::UpdateInput()
loc.x -= bounds.origin.x;
loc.y -= bounds.origin.y;
- m_cursor.x = (loc.x / bounds.size.width * 2 - 1.0) * window_scale.x;
- m_cursor.y = (loc.y / bounds.size.height * 2 - 1.0) * window_scale.y;
+ m_cursor.x = (loc.x / std::max(bounds.size.width, 1.0) * 2 - 1.0) * window_scale.x;
+ m_cursor.y = (loc.y / std::max(bounds.size.height, 1.0) * 2 - 1.0) * window_scale.y;
}
std::string KeyboardAndMouse::GetName() const
diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp
index dac0c085fa..a60edc3282 100644
--- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp
@@ -227,8 +227,8 @@ void KeyboardMouse::UpdateCursor()
const auto window_scale = g_controller_interface.GetWindowInputScale();
// the mouse position as a range from -1 to 1
- m_state.cursor.x = (win_x / win_attribs.width * 2 - 1) * window_scale.x;
- m_state.cursor.y = (win_y / win_attribs.height * 2 - 1) * window_scale.y;
+ m_state.cursor.x = (win_x / std::max(win_attribs.width, 1) * 2 - 1) * window_scale.x;
+ m_state.cursor.y = (win_y / std::max(win_attribs.height, 1) * 2 - 1) * window_scale.y;
}
void KeyboardMouse::UpdateInput()