mirror of https://github.com/raysan5/raylib
Partial fix the gesture system for DRM (#3502)
This commit is contained in:
parent
ba75a7a23b
commit
fe34fc7c6b
|
@ -170,6 +170,11 @@ static const int EvkeyToUnicodeLUT[] = {
|
|||
// LUT currently incomplete, just mapped the most essential keys
|
||||
};
|
||||
|
||||
#if defined(SUPPORT_GESTURES_SYSTEM)
|
||||
GestureEvent gestureEvent = { 0 }; // Gesture event to hold data between EventThread() and PollInputEvents()
|
||||
bool newGesture = false; // Var to trigger ProcessGestureEvent(gestureEvent) on PollInputEvents()
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// Module Internal Functions Declaration
|
||||
//----------------------------------------------------------------------------------
|
||||
|
@ -592,6 +597,18 @@ void PollInputEvents(void)
|
|||
// Reset touch positions
|
||||
//for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.position[i] = (Vector2){ 0, 0 };
|
||||
|
||||
// Map touch position to mouse position for convenience
|
||||
CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition;
|
||||
|
||||
#if defined(SUPPORT_GESTURES_SYSTEM)
|
||||
// Call the ProcessGestureEvent here instead of on EventThread() to workaround the threads not matching
|
||||
if (newGesture)
|
||||
{
|
||||
ProcessGestureEvent(gestureEvent);
|
||||
newGesture = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(SUPPORT_SSH_KEYBOARD_RPI)
|
||||
// NOTE: Keyboard reading could be done using input_event(s) or just read from stdin, both methods are used here.
|
||||
// stdin reading is still used for legacy purposes, it allows keyboard input trough SSH console
|
||||
|
@ -603,7 +620,6 @@ void PollInputEvents(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// Module Internal Functions Definition
|
||||
//----------------------------------------------------------------------------------
|
||||
|
@ -1715,7 +1731,7 @@ static void *EventThread(void *arg)
|
|||
#if defined(SUPPORT_GESTURES_SYSTEM)
|
||||
if (gestureUpdate)
|
||||
{
|
||||
GestureEvent gestureEvent = { 0 };
|
||||
//GestureEvent gestureEvent = { 0 };
|
||||
|
||||
gestureEvent.touchAction = touchAction;
|
||||
gestureEvent.pointCount = CORE.Input.Touch.pointCount;
|
||||
|
@ -1726,7 +1742,8 @@ static void *EventThread(void *arg)
|
|||
gestureEvent.position[i] = CORE.Input.Touch.position[i];
|
||||
}
|
||||
|
||||
ProcessGestureEvent(gestureEvent);
|
||||
//ProcessGestureEvent(gestureEvent);
|
||||
newGesture = true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue