From b876d3c3a51bac9fffc6dd976727102b93e45c96 Mon Sep 17 00:00:00 2001 From: artdeell Date: Fri, 5 Apr 2024 12:10:20 -0400 Subject: [PATCH] Feat[input]: send mouse position events before all other events --- app_pojavlauncher/src/main/jni/input_bridge_v3.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app_pojavlauncher/src/main/jni/input_bridge_v3.c b/app_pojavlauncher/src/main/jni/input_bridge_v3.c index eb0ad2e8c..ef708d250 100644 --- a/app_pojavlauncher/src/main/jni/input_bridge_v3.c +++ b/app_pojavlauncher/src/main/jni/input_bridge_v3.c @@ -104,6 +104,13 @@ void pojavPumpEvents(void* window) { // by spec, they will be called on the same thread so no synchronization here pojav_environ->isPumpingEvents = true; + if((pojav_environ->cLastX != pojav_environ->cursorX || pojav_environ->cLastY != pojav_environ->cursorY) && pojav_environ->GLFW_invoke_CursorPos) { + pojav_environ->cLastX = pojav_environ->cursorX; + pojav_environ->cLastY = pojav_environ->cursorY; + pojav_environ->GLFW_invoke_CursorPos(window, floor(pojav_environ->cursorX), + floor(pojav_environ->cursorY)); + } + size_t index = pojav_environ->outEventIndex; size_t targetIndex = pojav_environ->outTargetIndex; @@ -139,12 +146,6 @@ void pojavPumpEvents(void* window) { if (index >= EVENT_WINDOW_SIZE) index -= EVENT_WINDOW_SIZE; } - if((pojav_environ->cLastX != pojav_environ->cursorX || pojav_environ->cLastY != pojav_environ->cursorY) && pojav_environ->GLFW_invoke_CursorPos) { - pojav_environ->cLastX = pojav_environ->cursorX; - pojav_environ->cLastY = pojav_environ->cursorY; - pojav_environ->GLFW_invoke_CursorPos(window, floor(pojav_environ->cursorX), - floor(pojav_environ->cursorY)); - } // The out target index is updated by the rewinder pojav_environ->isPumpingEvents = false;