diff --git a/Engine/source/windowManager/sdl/sdlWindow.cpp b/Engine/source/windowManager/sdl/sdlWindow.cpp index 0574548e5..140673313 100644 --- a/Engine/source/windowManager/sdl/sdlWindow.cpp +++ b/Engine/source/windowManager/sdl/sdlWindow.cpp @@ -432,6 +432,11 @@ void PlatformWindowSDL::_triggerMouseLocationNotify(const SDL_Event& evt) mouseEvent.trigger(getWindowId(), 0, evt.motion.xrel, evt.motion.yrel, true); } +void PlatformWindowSDL::_triggerMouseWheelNotify(const SDL_Event& evt) +{ + wheelEvent.trigger(getWindowId(), 0, evt.wheel.x, evt.wheel.y); +} + void PlatformWindowSDL::_triggerMouseButtonNotify(const SDL_Event& event) { S32 action = (event.type == SDL_MOUSEBUTTONDOWN) ? SI_MAKE : SI_BREAK; @@ -530,12 +535,17 @@ void PlatformWindowSDL::_processSDLEvent(SDL_Event &evt) break; } + case SDL_MOUSEWHEEL: + { + _triggerMouseWheelNotify(evt); + break; + } + case SDL_MOUSEMOTION: { _triggerMouseLocationNotify(evt); break; } - case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: { diff --git a/Engine/source/windowManager/sdl/sdlWindow.h b/Engine/source/windowManager/sdl/sdlWindow.h index 5c809da07..75abdee4f 100644 --- a/Engine/source/windowManager/sdl/sdlWindow.h +++ b/Engine/source/windowManager/sdl/sdlWindow.h @@ -92,6 +92,7 @@ private: void _processSDLEvent(SDL_Event &evt); void _triggerMouseLocationNotify(const SDL_Event& evt); void _triggerMouseButtonNotify(const SDL_Event& event); + void _triggerMouseWheelNotify(const SDL_Event& event); void _triggerKeyNotify(const SDL_Event& event); void _triggerTextNotify(const SDL_Event& event); diff --git a/Engine/source/windowManager/sdl/sdlWindowMgr.cpp b/Engine/source/windowManager/sdl/sdlWindowMgr.cpp index 788981dac..61a7e7da6 100644 --- a/Engine/source/windowManager/sdl/sdlWindowMgr.cpp +++ b/Engine/source/windowManager/sdl/sdlWindowMgr.cpp @@ -214,6 +214,14 @@ void PlatformWindowManagerSDL::_process() break; } + case SDL_MOUSEWHEEL: + { + PlatformWindowSDL *window = mWindowMap[evt.wheel.windowID]; + if (window) + window->_processSDLEvent(evt); + break; + } + case SDL_MOUSEMOTION: { PlatformWindowSDL *window = mWindowMap[evt.motion.windowID];