From e9301ddce5a6ddf77dafc1f56f0b1461b2092c6f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 3 Dec 2012 00:00:28 +0300 Subject: Add support for relative mouse move in android version. --- src/gui/sdlinput.cpp | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'src/gui/sdlinput.cpp') diff --git a/src/gui/sdlinput.cpp b/src/gui/sdlinput.cpp index a79752cba..32aff02c9 100644 --- a/src/gui/sdlinput.cpp +++ b/src/gui/sdlinput.cpp @@ -58,9 +58,9 @@ #include "gui/sdlinput.h" -#include "keydata.h" - #include "inputmanager.h" +#include "keydata.h" +#include "mouseinput.h" #include @@ -108,10 +108,25 @@ gcn::MouseInput SDLInput::dequeueMouseInput() return mouseInput; } +MouseInput SDLInput::dequeueMouseInput2() +{ + MouseInput mouseInput; + + if (mMouseInputQueue.empty()) + { + throw GCN_EXCEPTION("The queue is empty."); + } + + mouseInput = mMouseInputQueue.front(); + mMouseInputQueue.pop(); + + return mouseInput; +} + void SDLInput::pushInput(const SDL_Event &event) { KeyInput keyInput; - gcn::MouseInput mouseInput; + MouseInput mouseInput; switch (event.type) { @@ -153,6 +168,9 @@ void SDLInput::pushInput(const SDL_Event &event) mMouseDown = true; mouseInput.setX(event.button.x); mouseInput.setY(event.button.y); +#ifdef ANDROID + mouseInput.setReal(event.button.realx, event.button.realy); +#endif mouseInput.setButton(convertMouseButton(event.button.button)); if (event.button.button == SDL_BUTTON_WHEELDOWN) @@ -169,6 +187,9 @@ void SDLInput::pushInput(const SDL_Event &event) mMouseDown = false; mouseInput.setX(event.button.x); mouseInput.setY(event.button.y); +#ifdef ANDROID + mouseInput.setReal(event.button.realx, event.button.realy); +#endif mouseInput.setButton(convertMouseButton(event.button.button)); mouseInput.setType(gcn::MouseInput::RELEASED); mouseInput.setTimeStamp(SDL_GetTicks()); @@ -178,6 +199,9 @@ void SDLInput::pushInput(const SDL_Event &event) case SDL_MOUSEMOTION: mouseInput.setX(event.button.x); mouseInput.setY(event.button.y); +#ifdef ANDROID + mouseInput.setReal(event.button.realx, event.button.realy); +#endif mouseInput.setButton(gcn::MouseInput::EMPTY); mouseInput.setType(gcn::MouseInput::MOVED); mouseInput.setTimeStamp(SDL_GetTicks()); -- cgit v1.2.3-60-g2f50