From a05a3deff6ecad9cbe2f52c44dc01d5c26a25ed0 Mon Sep 17 00:00:00 2001 From: Jonas Kulla Date: Sat, 3 Jan 2015 20:48:31 +0100 Subject: [PATCH] EventThread: Factor out event discarding code --- src/eventthread.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/eventthread.cpp b/src/eventthread.cpp index 724f4ba..64212b2 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -133,6 +133,25 @@ void EventThread::process(RGSSThreadData &rtData) continue; } + /* Preselect and discard unwanted events here */ + switch (event.type) + { + case SDL_MOUSEBUTTONDOWN : + case SDL_MOUSEBUTTONUP : + case SDL_MOUSEMOTION : + if (event.button.which == SDL_TOUCH_MOUSEID) + continue; + break; + + case SDL_FINGERDOWN : + case SDL_FINGERUP : + case SDL_FINGERMOTION : + if (event.tfinger.fingerId >= MAX_FINGERS) + continue; + break; + } + + /* Now process the rest */ switch (event.type) { case SDL_WINDOWEVENT : @@ -302,47 +321,29 @@ void EventThread::process(RGSSThreadData &rtData) break; case SDL_MOUSEBUTTONDOWN : - if (event.button.which == SDL_TOUCH_MOUSEID) - break; - mouseState.buttons[event.button.button] = true; break; case SDL_MOUSEBUTTONUP : - if (event.button.which == SDL_TOUCH_MOUSEID) - break; - mouseState.buttons[event.button.button] = false; break; case SDL_MOUSEMOTION : - if (event.button.which == SDL_TOUCH_MOUSEID) - break; - mouseState.x = event.motion.x; mouseState.y = event.motion.y; break; case SDL_FINGERDOWN : - if (event.tfinger.fingerId >= MAX_FINGERS) - break; - i = event.tfinger.fingerId; touchState.fingers[i].down = true; case SDL_FINGERMOTION : - if (event.tfinger.fingerId >= MAX_FINGERS) - break; - i = event.tfinger.fingerId; touchState.fingers[i].x = event.tfinger.x * winW; touchState.fingers[i].y = event.tfinger.y * winH; break; case SDL_FINGERUP : - if (event.tfinger.fingerId >= MAX_FINGERS) - break; - i = event.tfinger.fingerId; memset(&touchState.fingers[i], 0, sizeof(touchState.fingers[0])); break;