Commit 4f318c904a3d19b4d292675d6969319dffdc0d42

Sam Lantinga 2022-10-08T12:01:42

Add cursor position to mouse wheel event (thanks @meyraud705!) Fixes https://github.com/libsdl-org/SDL/pull/6351

diff --git a/include/SDL_events.h b/include/SDL_events.h
index 240a8a8..c2db57a 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 ffdda91..53937c4 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;