mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-18 00:59:35 -04:00
[Input pipe] Try to get copy-paste works
This commit is contained in:
parent
6fbb8fdb20
commit
7d6f837dea
@ -180,17 +180,17 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeAttachThread
|
||||
return result;
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeClipboard(JNIEnv* env, jclass clazz, jint action, jstring copy) {
|
||||
JNIEXPORT jstring JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeClipboard(JNIEnv* env, jclass clazz, jint action, jstring copySrc) {
|
||||
#ifdef DEBUG
|
||||
LOGD("Debug: Clipboard access is going on\n", isUseStackQueueCall);
|
||||
#endif
|
||||
// TODO: if crash here, then convert jstring to jstring (diff JVM)
|
||||
jclass bridgeClazz = (*dalvikJNIEnvPtr_JRE)->FindClass(dalvikJNIEnvPtr_JRE, "org/lwjgl/glfw/CallbackBridge");
|
||||
assert(bridgeClazz != NULL);
|
||||
jmethodID bridgeMethod = (*dalvikJNIEnvPtr_JRE)->GetStaticMethodID(dalvikJNIEnvPtr_JRE, bridgeClazz, "accessAndroidClipboard", "(ILjava/lang/String;)Ljava/lang/String;");
|
||||
assert(bridgeMethod != NULL);
|
||||
|
||||
return (jstring) (*dalvikJNIEnvPtr_JRE)->CallStaticObjectMethod(dalvikJNIEnvPtr_JRE, bridgeClazz, bridgeMethod, action, copy);
|
||||
jstring copyDst = convertStringJVM(runtimeJNIEnvPtr_ANDROID, dalvikJNIEnvPtr_JRE, copySrc);
|
||||
return convertStringJVM(dalvikJNIEnvPtr_JRE, runtimeJNIEnvPtr_ANDROID, (jstring) (*dalvikJNIEnvPtr_JRE)->CallStaticObjectMethod(dalvikJNIEnvPtr_JRE, bridgeClazz, bridgeMethod, action, copyDst));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeSetInputReady(JNIEnv* env, jclass clazz, jboolean inputReady) {
|
||||
|
@ -48,6 +48,13 @@ void free_char_array(JNIEnv *env, jobjectArray jstringArray, const char **charAr
|
||||
}
|
||||
}
|
||||
|
||||
jstring convertStringToJVM(JNIEnv* srcEnv, JNIEnv* dstEnv, jstring srcStr) {
|
||||
const char* srcStrC = (*srcEnv)->GetStringUTFChars(srcEnv, srcStr, 0);
|
||||
jstring dstStr = (*dstEnv)->NewStringUTF(dstEnv, srcStrC);
|
||||
(*srcEnv)->ReleaseStringUTFChars(srcEnv, srcStr, srcStrC);
|
||||
return dstStr;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_setupBridgeSurfaceAWT(JNIEnv *env, jclass clazz, jlong surface) {
|
||||
shared_awt_surface = surface;
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ jboolean attachThread(bool isAndroid, JNIEnv** secondJNIEnvPtr);
|
||||
char** convert_to_char_array(JNIEnv *env, jobjectArray jstringArray);
|
||||
jobjectArray convert_from_char_array(JNIEnv *env, char **charArray, int num_rows);
|
||||
void free_char_array(JNIEnv *env, jobjectArray jstringArray, const char **charArray);
|
||||
jstring convertStringToJVM(JNIEnv* srcEnv, JNIEnv* dstEnv, jstring srcStr);
|
||||
|
||||
void closeGLFWWindow();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user