static unsigned int special_cursor_delay = 0;
static unsigned int special_cursor_delay_value = 1000;
+
+/* forward declarations for internal use */
+static void HandleNoEvent(void);
+static void HandleEventActions(void);
+
+
/* event filter especially needed for SDL event filtering due to
delay problems with lots of mouse motion events when mouse button
not pressed (X11 can handle this with 'PointerMotionHintMask') */
if (PendingEvent())
HandleEvents();
else
- HandleMouseCursor();
+ HandleNoEvent();
- /* also execute after pending events have been processed before */
- HandleNoEvent();
+ /* execute event related actions after pending events have been processed */
+ HandleEventActions();
/* don't use all CPU time when idle; the main loop while playing
has its own synchronization and is CPU friendly, too */
if (game_status != GAME_MODE_PLAYING)
return;
- if (strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER))
+ if (strEqual(setup.touch.control_type, TOUCH_CONTROL_OFF))
return;
if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS))
return;
}
+ if (!strEqual(setup.touch.control_type, TOUCH_CONTROL_WIPE_GESTURES))
+ return;
+
// use touch direction control
if (event->type == EVENT_FINGERPRESS)
}
void HandleNoEvent()
+{
+ HandleMouseCursor();
+
+ switch (game_status)
+ {
+#if defined(TARGET_SDL2)
+ case GAME_MODE_PLAYING:
+ HandleFollowFinger(-1, -1, -1);
+ break;
+#endif
+ }
+}
+
+void HandleEventActions()
{
// if (button_status && game_status != GAME_MODE_PLAYING)
if (button_status && (game_status != GAME_MODE_PLAYING ||
HandleLevelEditorIdle();
break;
-#if defined(TARGET_SDL2)
- case GAME_MODE_PLAYING:
- HandleFollowFinger(-1, -1, -1);
- break;
-#endif
-
default:
break;
}