From 4f318c904a3d19b4d292675d6969319dffdc0d42 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 8 Oct 2022 12:01:42 -0700 Subject: [PATCH] Add cursor position to mouse wheel event (thanks @meyraud705!) Fixes https://github.com/libsdl-org/SDL/pull/6351 --- include/SDL_events.h | 2 ++ src/events/SDL_mouse.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/include/SDL_events.h b/include/SDL_events.h index 240a8a8ba..c2db57a94 100644 --- a/include/SDL_events.h +++ b/include/SDL_events.h @@ -318,6 +318,8 @@ typedef struct SDL_MouseWheelEvent Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ float preciseX; /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */ float preciseY; /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */ + Sint32 mouse_x; /**< X coordinate, relative to window (added in 2.26.0) */ + Sint32 mouse_y; /**< Y coordinate, relative to window (added in 2.26.0) */ } SDL_MouseWheelEvent; /** diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c index ffdda9154..53937c4fa 100644 --- a/src/events/SDL_mouse.c +++ b/src/events/SDL_mouse.c @@ -868,6 +868,8 @@ SDL_SendMouseWheel(SDL_Window * window, SDL_MouseID mouseID, float x, float y, S event.wheel.preciseX = x; event.wheel.preciseY = y; event.wheel.direction = (Uint32)direction; + event.wheel.mouse_x = mouse->x; + event.wheel.mouse_y = mouse->y; posted = (SDL_PushEvent(&event) > 0); } return posted;