From 00f15dd215b7fa9de754a5a9c5337d38895019bb Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 23 Oct 2024 23:35:02 -0400 Subject: [PATCH] emscripten: scale mousewheel X coordinates correctly, not just Y coordinates. Fixes #10454. (cherry picked from commit 4ea26a777104fcd59ddb49d77f4a91a66dee13c9) --- src/video/emscripten/SDL_emscriptenevents.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/video/emscripten/SDL_emscriptenevents.c b/src/video/emscripten/SDL_emscriptenevents.c index bcec00cffa..f2cb2ed5c8 100644 --- a/src/video/emscripten/SDL_emscriptenevents.c +++ b/src/video/emscripten/SDL_emscriptenevents.c @@ -714,20 +714,24 @@ static EM_BOOL Emscripten_HandleWheel(int eventType, const EmscriptenWheelEvent SDL_WindowData *window_data = userData; float deltaY = wheelEvent->deltaY; + float deltaX = wheelEvent->deltaX; switch (wheelEvent->deltaMode) { case DOM_DELTA_PIXEL: deltaY /= 100; /* 100 pixels make up a step */ + deltaX /= 100; /* 100 pixels make up a step */ break; case DOM_DELTA_LINE: deltaY /= 3; /* 3 lines make up a step */ + deltaX /= 3; /* 3 lines make up a step */ break; case DOM_DELTA_PAGE: deltaY *= 80; /* A page makes up 80 steps */ + deltaX *= 80; /* A page makes up 80 steps */ break; } - SDL_SendMouseWheel(window_data->window, 0, (float)wheelEvent->deltaX, -deltaY, SDL_MOUSEWHEEL_NORMAL); + SDL_SendMouseWheel(window_data->window, 0, deltaX, -deltaY, SDL_MOUSEWHEEL_NORMAL); return SDL_GetEventState(SDL_MOUSEWHEEL) == SDL_ENABLE; }