mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 04:54:35 +00:00
Wayland: Clean up pointer axis handler
(cherry picked from commit 9afbcb442b
)
This commit is contained in:
parent
7554375d6d
commit
fafcba3824
@ -1537,24 +1537,14 @@ static void pointerHandleAxis(void* userData,
|
|||||||
wl_fixed_t value)
|
wl_fixed_t value)
|
||||||
{
|
{
|
||||||
_GLFWwindow* window = _glfw.wl.pointerFocus;
|
_GLFWwindow* window = _glfw.wl.pointerFocus;
|
||||||
double x = 0.0, y = 0.0;
|
|
||||||
// Wayland scroll events are in pointer motion coordinate space (think two
|
|
||||||
// finger scroll). The factor 10 is commonly used to convert to "scroll
|
|
||||||
// step means 1.0.
|
|
||||||
const double scrollFactor = 1.0 / 10.0;
|
|
||||||
|
|
||||||
if (!window)
|
if (!window)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
assert(axis == WL_POINTER_AXIS_HORIZONTAL_SCROLL ||
|
// NOTE: 10 units of motion per mouse wheel step seems to be a common ratio
|
||||||
axis == WL_POINTER_AXIS_VERTICAL_SCROLL);
|
|
||||||
|
|
||||||
if (axis == WL_POINTER_AXIS_HORIZONTAL_SCROLL)
|
if (axis == WL_POINTER_AXIS_HORIZONTAL_SCROLL)
|
||||||
x = -wl_fixed_to_double(value) * scrollFactor;
|
_glfwInputScroll(window, -wl_fixed_to_double(value) / 10.0, 0.0);
|
||||||
else if (axis == WL_POINTER_AXIS_VERTICAL_SCROLL)
|
else if (axis == WL_POINTER_AXIS_VERTICAL_SCROLL)
|
||||||
y = -wl_fixed_to_double(value) * scrollFactor;
|
_glfwInputScroll(window, 0.0, -wl_fixed_to_double(value) / 10.0);
|
||||||
|
|
||||||
_glfwInputScroll(window, x, y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct wl_pointer_listener pointerListener =
|
static const struct wl_pointer_listener pointerListener =
|
||||||
|
Loading…
Reference in New Issue
Block a user