From c658d005c6fa8954972a410d6428ff0a1ecb2b31 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Sun, 27 Sep 2020 19:50:23 +0700 Subject: [PATCH] Fix Y inverted --- .../net/kdt/pojavlaunch/MainActivity.java | 33 +++++++++---------- .../main/java/net/kdt/pojavlaunch/Tools.java | 2 +- .../java/org/lwjgl/glfw/CallbackBridge.java | 7 +++- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java index 514af6c67..be59334fc 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java @@ -395,22 +395,21 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O minecraftGLView.setFocusableInTouchMode(true); // minecraftGLView.setEGLContextClientVersion(2); - glTouchListener = new OnTouchListener(){ - private boolean isTouchInHotbar = false; - private int hotbarX, hotbarY; - @Override - public boolean onTouch(View p1, MotionEvent e) - { - // System.out.println("Pre touch, isTouchInHotbar=" + Boolean.toString(isTouchInHotbar) + ", action=" + MotionEvent.actionToString(e.getActionMasked())); + glTouchListener = new OnTouchListener(){ + private boolean isTouchInHotbar = false; + private int hotbarX, hotbarY; + @Override + public boolean onTouch(View p1, MotionEvent e) + { + // System.out.println("Pre touch, isTouchInHotbar=" + Boolean.toString(isTouchInHotbar) + ", action=" + MotionEvent.actionToString(e.getActionMasked())); int x = ((int) e.getX()) / scaleFactor; - int y = (CallbackBridge.windowHeight - ((int) e.getY())) / scaleFactor; + int y = ((int) e.getY()) / scaleFactor; int hudKeyHandled = handleGuiBar(x, y, e); if (!CallbackBridge.isGrabbing() && gestureDetector.onTouchEvent(e)) { if (hudKeyHandled != -1) { sendKeyPress(hudKeyHandled); } else { - CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 1, x, y, 0, System.nanoTime()); - CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 0, x, y, 0, System.nanoTime()); + CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, x, y); if (!rightOverride) { CallbackBridge.mouseLeft = true; } @@ -434,8 +433,7 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O } if (CallbackBridge.isGrabbing()) { - // bug hold left mouse! - CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 1, x, y, 0, System.nanoTime()); + CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 1, x, y); initialX = x; initialY = y; theHandler.sendEmptyMessageDelayed(MainActivity.MSG_LEFT_MOUSE_BUTTON_CHECK, LauncherPreferences.PREF_LONGPRESS_TRIGGER); @@ -450,12 +448,12 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O CallbackBridge.mouseY = y; // TODO uncomment after fix wrong trigger - // CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 0, x, y, 0, System.nanoTime()); + // CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 0, x, y); if (!rightOverride) { CallbackBridge.mouseLeft = false; } } - + if (CallbackBridge.isGrabbing()) { // System.out.println((String) ("[Math.abs(" + initialX + " - " + x + ") = " + Math.abs(initialX - x) + "] < " + fingerStillThreshold)); // System.out.println((String) ("[Math.abs(" + initialY + " - " + y + ") = " + Math.abs(initialY - y) + "] < " + fingerStillThreshold)); @@ -487,7 +485,6 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O } } - /* int x = ((int) e.getX()) / scaleFactor; int y = (minecraftGLView.getHeight() - ((int) e.getY())) / scaleFactor; @@ -538,7 +535,7 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O CallbackBridge.sendCursorPos(x, CallbackBridge.windowHeight - y); // TODO uncomment after fix wrong trigger - // CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 0, x, y, 0, System.nanoTime()); + // CallbackBridge.putMouseEventWithCoords(rightOverride ? (byte) 1 : (byte) 0, (byte) 0, x, y); if (!rightOverride) { // CallbackBridge.mouseLeft = false; } @@ -655,7 +652,7 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O case MotionEvent.ACTION_POINTER_UP: // 6 CallbackBridge.sendCursorPos(x, y); CallbackBridge.sendMouseKeycode(rightOverride ? LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_RIGHT : LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_LEFT, 0, true); - // CallbackBridge.putMouseEventWithCoords(!CallbackBridge.mouseLeft /* rightOverride */ ? (byte) 1 : (byte) 0, (byte) 0, x, y, 0, System.nanoTime()); + // CallbackBridge.putMouseEventWithCoords(!CallbackBridge.mouseLeft /* rightOverride */ ? (byte) 1 : (byte) 0, (byte) 0, x, y); /* if (!triggeredLeftMouseButton && Math.abs(initialX - x) < fingerStillThreshold && Math.abs(initialY - y) < fingerStillThreshold) { sendMouseButton(1, true); @@ -887,7 +884,7 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O } */ - CallbackBridge.putMouseEventWithCoords(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_RIGHT, isDown ? 1 : 0, CallbackBridge.mouseX, CallbackBridge.mouseY, 0, 0l); + CallbackBridge.putMouseEventWithCoords(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_RIGHT, isDown ? 1 : 0, CallbackBridge.mouseX, CallbackBridge.mouseY); setRightOverride(isDown); } break; diff --git a/app/src/main/java/net/kdt/pojavlaunch/Tools.java b/app/src/main/java/net/kdt/pojavlaunch/Tools.java index 029dd3e3d..6d378d0ad 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -186,7 +186,7 @@ public final class Tools // Should be compatible? // overrideableArgList.add("-Dos.name=Android"); overrideableArgList.add("-Dos.name=Linux"); - overrideableArgList.add("-Dos.version=" + Build.VERSION.SDK); + overrideableArgList.add("-Dos.version=" + Build.VERSION.RELEASE); // javaArgList.add("-Dorg.lwjgl.libname=liblwjgl3.so"); // javaArgList.add("-Dorg.lwjgl.system.jemalloc.libname=libjemalloc.so"); diff --git a/app/src/main/java/org/lwjgl/glfw/CallbackBridge.java b/app/src/main/java/org/lwjgl/glfw/CallbackBridge.java index 28e532c3e..446d52ff5 100644 --- a/app/src/main/java/org/lwjgl/glfw/CallbackBridge.java +++ b/app/src/main/java/org/lwjgl/glfw/CallbackBridge.java @@ -20,7 +20,12 @@ public class CallbackBridge { // volatile private static boolean isGrabbing = false; - public static void putMouseEventWithCoords(int button, int state, int x, int y, int dz, long nanos) { + public static void putMouseEventWithCoords(int button, int x, int y /* , int dz, long nanos */) { + putMouseEventWithCoords(button, 1, x, y); + putMouseEventWithCoords(button, 0, x, y); + } + + public static void putMouseEventWithCoords(int button, int state, int x, int y /* , int dz, long nanos */) { sendCursorPos(x, y); sendMouseKeycode(button, 0, state == 1); }