diff --git a/src/Platform/Sdl2Application.cpp b/src/Platform/Sdl2Application.cpp index 9ae19073f..c5d030b20 100644 --- a/src/Platform/Sdl2Application.cpp +++ b/src/Platform/Sdl2Application.cpp @@ -117,7 +117,7 @@ int Sdl2Application::exec() { } break; case SDL_MOUSEMOTION: { - MouseMoveEvent e({event.motion.x, event.motion.y}); + MouseMoveEvent e({event.motion.x, event.motion.y}, {event.motion.xrel, event.motion.yrel}); mouseMoveEvent(e); break; } diff --git a/src/Platform/Sdl2Application.h b/src/Platform/Sdl2Application.h index 10e0e7713..bc416956a 100644 --- a/src/Platform/Sdl2Application.h +++ b/src/Platform/Sdl2Application.h @@ -371,6 +371,13 @@ class Sdl2Application::MouseMoveEvent: public Sdl2Application::InputEvent { /** @brief Position */ inline Math::Vector2 position() const { return _position; } + /** + * @brief Relative position + * + * Position relative to previous event + */ + inline Math::Vector2 relativePosition() const { return _relativePosition; } + /** * @brief Modifiers * @@ -379,9 +386,9 @@ class Sdl2Application::MouseMoveEvent: public Sdl2Application::InputEvent { Modifiers modifiers(); private: - inline MouseMoveEvent(const Math::Vector2& position): _position(position), modifiersLoaded(false) {} + inline MouseMoveEvent(const Math::Vector2& position, const Math::Vector2& relativePosition): _position(position), _relativePosition(relativePosition), modifiersLoaded(false) {} - const Math::Vector2 _position; + const Math::Vector2 _position, _relativePosition; bool modifiersLoaded; Modifiers _modifiers; };