From 8b4f4532f68fb098c4d1809b9989bee178b26cb2 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Sat, 12 Dec 2020 19:06:33 +0700 Subject: [PATCH] [Input pipe] Get unicode input working --- .../java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java | 8 +++++--- app/src/main/jni/input_bridge_v3.c | 11 +++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java index ec8d47cf5..fd7313d47 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java +++ b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java @@ -180,10 +180,12 @@ public class AndroidLWJGLKeycode { try { if (!CallbackBridge.isGrabbing()) { - if (keyEvent.isPrintingKey()) { - BaseMainActivity.sendKeyPress(androidToLwjglMap.get(keyEvent.getKeyCode()), (char) keyEvent.getUnicodeChar(keyEvent.getMetaState()), keyEvent.getScanCode(), CallbackBridge.getCurrentMods(), isDown); - } else if ((int) keyEvent.getDisplayLabel() != KeyEvent.KEYCODE_UNKNOWN) { + if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_UNKNOWN) { BaseMainActivity.sendKeyPress(androidToLwjglMap.get(keyEvent.getKeyCode()), (char) keyEvent.getDisplayLabel(), keyEvent.getScanCode(), CallbackBridge.getCurrentMods(), isDown); + } else { + for (char c : keyEvent.getCharacters().toCharArray()) { + BaseMainActivity.sendKeyPress(-1 /* GLFW_KEY_UNKNOWN */, c, keyEvent.getScanCode(), CallbackBridge.getCurrentMods(), isDown); + } } } } catch (Throwable th) { diff --git a/app/src/main/jni/input_bridge_v3.c b/app/src/main/jni/input_bridge_v3.c index cbea4710f..0f53bae51 100644 --- a/app/src/main/jni/input_bridge_v3.c +++ b/app/src/main/jni/input_bridge_v3.c @@ -5,6 +5,9 @@ * - Active development * - Works with some bugs: * + Modded versions gives broken stuff.. + * + * TODO: + * - Implements glfwSetCursorPos() to handle grab camera pos correctly. */ #include @@ -202,12 +205,8 @@ JNIEXPORT void JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeSetGrabbing(JNIE isGrabbing = grabbing; if (isGrabbing == JNI_TRUE) { // Center the cursor pointer - if (isUseStackQueueCall) { - grabCursorX = savedWidth / 2; - grabCursorY = savedHeight / 2; - } else { - grabCursorX = grabCursorY = 0; - } + grabCursorX = savedWidth / 2; + grabCursorY = savedHeight / 2; isPrepareGrabPos = true; } }