From 1ca1c0671e91a45107866bfca26f8114a897c317 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Fri, 14 Jul 2023 08:21:36 +0700 Subject: [PATCH] Feat: support AWT clipboard for 1.12.2 and lower --- .../cacio-androidnw-1.10-SNAPSHOT.jar | Bin 39122 -> 45072 bytes .../cacio-shared-1.10-SNAPSHOT.jar | Bin 102754 -> 102755 bytes .../cacio-shared-1.18-SNAPSHOT.jar | Bin 101068 -> 101064 bytes .../cacio-tta-1.18-SNAPSHOT.jar | Bin 33237 -> 46605 bytes Natives/environ.h | 3 ++ Natives/input_bridge_v3.m | 35 ++++++++++++++++++ Natives/ios_uikit_bridge.h | 3 ++ Natives/ios_uikit_bridge.m | 3 -- 8 files changed, 41 insertions(+), 3 deletions(-) diff --git a/JavaApp/libs_caciocavallo/cacio-androidnw-1.10-SNAPSHOT.jar b/JavaApp/libs_caciocavallo/cacio-androidnw-1.10-SNAPSHOT.jar index 4fdaa9c7c45c32833c810546ab5557448d7680ab..fa2db2a12125d9c031c4dc0984ae0fc217d6c199 100644 GIT binary patch delta 10798 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 delta 4964 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 YYd7xylqhBzeh5EgoeBaOjz0qZ4_;(hKL7v# diff --git a/JavaApp/libs_caciocavallo/cacio-shared-1.10-SNAPSHOT.jar b/JavaApp/libs_caciocavallo/cacio-shared-1.10-SNAPSHOT.jar index a7129ca18a5b3b2efebaba976bff82d156cf907c..5171bec5461d9bb45e9a7c520e7d843cd9eb8fd7 100644 GIT binary patch delta 3750 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 delta 3775 zcmZWrdstOf7C-B9xm@7#ibuQzLJ&c?pn(E{p(L4J5z8FQCuynRfSSCyJVc(#<#Ej2 zG--zV^;)+iS10 zueNBev}hdD7Fen61o|gV+xJ3~<3w#U{=OD{sJAI@+q|a}*VdTaR<`fn)EMkhs2NMy zlhU)IXN52x)r4pkF8x#E?;AN;kxE3O$&%A5WyFD5W`$%&uF4%tInQG zm}kY88h`kRFU^tuhq>R}0dDr(?KvAB0ACI)1urdM_6EXIDadr-x+kmCS^6r(*)qS` zN8hXBD+klR)y!?~Iv#D!ZQXlYr8-dqHzeHcPevqfruSzOHLpo93tZ@~H1+!zpTm8} zfgnVRgWq_NMJDhiE$MK9`Cls%bP+a!5aBEcVa$KK5Ntco#lc(~UOlwmidPatzk0wo z@%<{;Dph}Kdkb*faMW~Oos>NX_gV5k1sF^8PJ$2H>6VAU zd8x!~zw3Obq5s(+?dnrqzb&tDt-0ThM|dW~I!TC&XBS8+C%g!alC;KA-2{%TSHq7y zcW22w=;ra};+|NZT`cgr$*9_U8eaLqN)YT(iz$ri{&Mg%JJdapB-Lg^n@Xb-ZEEVmlXb$AjhBJqnq_t*trQ%@ z&sUt`Wa7_tv z%Q4HwB;3%%os!M}e5|!2mBz(A-TW;wN>Y4wjXV7;K{(0Y8JeV8*2d%Z` zP`y6{kX!knWB7k=c71aLj?!waAWTxEp5wsr^#$O~praq(YWNJdoE#tslNHdLF5>Z6 zcdRh2ipCm z;6i-2%f9Qi=$jZqwiH4T39AEsF-d#{nvG#BTV{nc?@5sfydjgg6oZEtWwIvkzY1=o z7;`aNT{Ro_ZbT`s;+_*Mq^OjK4K)9JhPo!UcUL2#*H#dwD^Qt>xGKMvLl{4~?oCFz=!W=*LF0Qyv)%jwu3)68!FKpxr%W%Rzd(Px2V+W-XUv2IF0ItD9ZVz zlk^=B!%!bQvL7;{n%+3nW-3tH^|XvH>CeY+9c>trREK4TGvqRkq_hsaxXTaqQ3Y%w zThd`F$u!9t&)nfQY*~YgPQ7P{@wF)zI?{CN?RTeO=xX}pz<$6TN7L|p*+hAQ-NEae4m>#RxZbD$&jyChPIZ<-=TS4K%GaCbJ3h*xpd6bWkCC#)NI}KZsQ~-P+lMX7+9FZ|0BUQjZ zX{0U>&24XSb6*~cNp&aTw0+82IB#dso2)LEPwF;3sTW##L{c(1v*Y3%-`;_~?j!Wv z#fN8o$y+6I)YvZc*qUh+JDqSI&{~b=y+_%m#I{j85-v}M>*uGuaTw3*Cv41V3Tax; zTe9d#T8(@i_tFZ7{>6FWl+lv5d7v3jn0fE+sk?Zo9%7d(=f~QwX%H%gSBcX~phCVo z!gJwpb0DSpvXI&3=xZ8fKJk97>toxW*?_LIH+Wc7HgF%iJyWkmT&Ts?dmV3&vXjeh za(rZ!+{xawLh29PoK`NI`)bhq@;z=I)=I*&>@9=KpU=jT>*y#5K?<=v?8%r3=x}sl zr@`QgmxKa-%7w%6Wg!m729fqMsZ$SGFMIy)2wjccJwp)^EEJCuMaoA(;~}$31IJki4u)(WWT3~!h*X3)Otyqj7JRTNUNs7MPN)Sg zlX4)@CE&)GE!d;acn8aD!~;`qwlYkPx#6VdCmMQlj2C6+`M%Xc=l7+Fj=jJv9f z!H;EH){*dHH?o+C&8KAH{gMT4VL^T_hRH1McbY%g9Kg6CWFM_ykhJXaI4^Q8Prm3M z;P+Y;vz)poiB3V9$F9eF^y71K6?J(NLoE)%Hwz@4#$S5>dpU)59G_SXzKoRO?WZ6W z`MM=_H2Zw4TiCUD6d{dxmf;HMiH#iEYJ*?rjv7hvUrsJQJ&d>%#49i9oeYlmsgQ5u zN;$21w(p;6_-<9+;%65!OBS PzP!^285&~_(h&X&%L<$} diff --git a/JavaApp/libs_caciocavallo17/cacio-shared-1.18-SNAPSHOT.jar b/JavaApp/libs_caciocavallo17/cacio-shared-1.18-SNAPSHOT.jar index 0d4859d2d5079775008af6c791676678aa35133a..39d65c525080b3434796f0bfc8df9efdde6eb0c8 100644 GIT binary patch delta 3764 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 Rfe7;cM$pM^R$$F=zXFE<*1Z4# diff --git a/JavaApp/libs_caciocavallo17/cacio-tta-1.18-SNAPSHOT.jar b/JavaApp/libs_caciocavallo17/cacio-tta-1.18-SNAPSHOT.jar index 91bc64206f7936aa3b110131f6166398f4554244..59f113b1f8d37f57d0cad072a88edaf34a0eeed4 100644 GIT binary patch delta 17615 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 delta 4480 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 Iz&+Fd1GI!4ng9R* diff --git a/Natives/environ.h b/Natives/environ.h index bb3a9a8b..d189d654 100644 --- a/Natives/environ.h +++ b/Natives/environ.h @@ -27,6 +27,9 @@ typedef void GLFW_invoke_Scroll_func(void* window, double xoffset, double yoffse typedef void GLFW_invoke_WindowPos_func(void* window, int x, int y); typedef void GLFW_invoke_WindowSize_func(void* window, int width, int height); +jclass class_CTCClipboard; +jmethodID method_SystemClipboardDataReceived; + //struct pojav_environ_s { //struct ANativeWindow* pojavWindow; //render_window_t* mainWindowBundle; diff --git a/Natives/input_bridge_v3.m b/Natives/input_bridge_v3.m index e73346d9..a9f4ebab 100644 --- a/Natives/input_bridge_v3.m +++ b/Natives/input_bridge_v3.m @@ -95,7 +95,29 @@ hooked_ProcessImpl_forkAndExec(JNIEnv *env, jobject process, jint mode, jbyteArr } // Part of awt_bridge +void CTCClipboard_nQuerySystemClipboard(JNIEnv *env, jclass clazz) { + if(method_SystemClipboardDataReceived == NULL) { + class_CTCClipboard = (*env)->NewGlobalRef(env, clazz); + method_SystemClipboardDataReceived = (*env)->GetStaticMethodID(env, clazz, "systemClipboardDataReceived", "(Ljava/lang/String;Ljava/lang/String;)V"); } + // From Java_net_kdt_pojavlaunch_AWTInputBridge_nativeClipboardReceived + // Note: we cannot use main_queue here as it will cause deadlock + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + JNIEnv *env; + (*runtimeJavaVMPtr)->AttachCurrentThread(runtimeJavaVMPtr, &env, NULL); + const char* mimeChars = "text/plain"; + (*env)->CallStaticVoidMethod(env, class_CTCClipboard, method_SystemClipboardDataReceived, + UIKit_accessClipboard(env, CLIPBOARD_PASTE, NULL), + (*env)->NewStringUTF(env, mimeChars)); + (*runtimeJavaVMPtr)->DetachCurrentThread(runtimeJavaVMPtr); + }); +} + +void CTCClipboard_nPutClipboardData(JNIEnv* env, jclass clazz, jstring clipboardData, jstring clipboardDataMime) { + // TODO: handle non-text data(?) + UIKit_accessClipboard(env, CLIPBOARD_COPY, clipboardData); +} + void CTCDesktopPeer_openGlobal(JNIEnv *env, jclass clazz, jstring path) { const char* stringChars = (*env)->GetStringUTFChars(env, path, NULL); openURLGlobal(@(stringChars)); @@ -118,6 +140,19 @@ void registerOpenHandler() { }; (*runtimeJNIEnvPtr)->RegisterNatives(runtimeJNIEnvPtr, cls, forkAndExecMethod, 1); + // Register CTCClipboard natives + cls = (*runtimeJNIEnvPtr)->FindClass(runtimeJNIEnvPtr, "net/java/openjdk/cacio/ctc/CTCClipboard"); + if ((*runtimeJNIEnvPtr)->ExceptionOccurred(runtimeJNIEnvPtr)) { + // Java 17 + (*runtimeJNIEnvPtr)->ExceptionClear(runtimeJNIEnvPtr); + cls = (*runtimeJNIEnvPtr)->FindClass(runtimeJNIEnvPtr, "com/github/caciocavallosilano/cacio/ctc/CTCClipboard"); + } + JNINativeMethod clipboardMethods[] = { + {"nQuerySystemClipboard", "()V", (void *)&CTCClipboard_nQuerySystemClipboard}, + {"nPutClipboardData", "(Ljava/lang/String;Ljava/lang/String;)V", (void *)&CTCClipboard_nPutClipboardData} + }; + (*runtimeJNIEnvPtr)->RegisterNatives(runtimeJNIEnvPtr, cls, clipboardMethods, 2); + // Register CTCDesktopPeer natives cls = (*runtimeJNIEnvPtr)->FindClass(runtimeJNIEnvPtr, "net/java/openjdk/cacio/ctc/CTCDesktopPeer"); if ((*runtimeJNIEnvPtr)->ExceptionOccurred(runtimeJNIEnvPtr)) { diff --git a/Natives/ios_uikit_bridge.h b/Natives/ios_uikit_bridge.h index 74f99df0..86300b96 100644 --- a/Natives/ios_uikit_bridge.h +++ b/Natives/ios_uikit_bridge.h @@ -2,6 +2,9 @@ #import #include "jni.h" +#define CLIPBOARD_COPY 2000 +#define CLIPBOARD_PASTE 2001 + UIViewController* tmpRootVC; void showDialog(NSString* title, NSString* message); diff --git a/Natives/ios_uikit_bridge.m b/Natives/ios_uikit_bridge.m index 04d1022e..cdf947dc 100644 --- a/Natives/ios_uikit_bridge.m +++ b/Natives/ios_uikit_bridge.m @@ -10,9 +10,6 @@ #include "ios_uikit_bridge.h" #include "utils.h" -#define CLIPBOARD_COPY 2000 -#define CLIPBOARD_PASTE 2001 - jclass class_CTCScreen; jmethodID method_GetRGB;