From 5b16dbb55052f94c62531ac96d6c31ffc287ca8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 16 Nov 2012 11:49:21 +0100 Subject: [PATCH] Sdl2Application: support for relative position in mouse move event. --- src/Platform/Sdl2Application.cpp | 2 +- src/Platform/Sdl2Application.h | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) 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; };