@@ -2013,6 +2013,7 @@ extern "C" JNIEXPORT void JNICALL Java_com_runrev_android_Engine_doMediaDone(JNI
20132013extern " C" JNIEXPORT void JNICALL Java_com_runrev_android_Engine_doMediaCanceled (JNIEnv *env, jobject object) __attribute__((visibility(" default" )));
20142014extern " C" JNIEXPORT void JNICALL Java_com_runrev_android_Engine_doKeyboardShown (JNIEnv *env, jobject object, int height) __attribute__((visibility(" default" )));
20152015extern " C" JNIEXPORT void JNICALL Java_com_runrev_android_Engine_doKeyboardHidden (JNIEnv *env, jobject object) __attribute__((visibility(" default" )));
2016+ extern " C" JNIEXPORT jobject JNICALL Java_com_runrev_android_Engine_doGetFocusedRect (JNIEnv *env, jobject object) __attribute__((visibility(" default" )));
20162017
20172018JNIEXPORT void JNICALL Java_com_runrev_android_Engine_doCreate (JNIEnv *env, jobject object, jobject activity, jobject container, jobject view)
20182019{
@@ -3085,6 +3086,58 @@ JNIEXPORT jstring JNICALL Java_com_runrev_android_Engine_doGetCustomPropertyValu
30853086
30863087// //////////////////////////////////////////////////////////////////////////////
30873088
3089+ JNIEXPORT jobject JNICALL Java_com_runrev_android_Engine_doGetFocusedRect (JNIEnv *env, jobject object)
3090+ {
3091+ MCObject *t_object = nullptr ;
3092+ if (MCactivefield.IsValid ())
3093+ {
3094+ t_object = MCactivefield;
3095+ }
3096+
3097+ if (t_object == nullptr )
3098+ {
3099+ t_object = MCdefaultstackptr->getcard ()->getkfocused ();
3100+ }
3101+
3102+ if (t_object == nullptr )
3103+ {
3104+ t_object = MCdefaultstackptr->getcard ();
3105+ }
3106+
3107+ if (t_object == nullptr )
3108+ {
3109+ return nullptr ;
3110+ }
3111+
3112+ MCRectangle t_object_rect = t_object -> getrect ();
3113+ MCGAffineTransform t_transform = MCdefaultstackptr->getdevicetransform ();
3114+
3115+ MCRectangle t_transformed_object_rect =
3116+ MCRectangleGetTransformedBounds (t_object_rect, t_transform);
3117+
3118+ jclass t_class = env->FindClass (" android/graphics/Rect" );
3119+ if (t_class == nullptr )
3120+ {
3121+ return nullptr ;
3122+ }
3123+
3124+ jmethodID t_constructor = env->GetMethodID (t_class, " <init>" , " (IIII)V" );
3125+ if (t_constructor == nullptr )
3126+ {
3127+ return nullptr ;
3128+ }
3129+ jobject t_rect = env->NewObject (t_class,
3130+ t_constructor,
3131+ t_transformed_object_rect.x ,
3132+ t_transformed_object_rect.y ,
3133+ t_transformed_object_rect.x + t_transformed_object_rect.width ,
3134+ t_transformed_object_rect.y + t_transformed_object_rect.height );
3135+
3136+ return t_rect;
3137+ }
3138+
3139+ // //////////////////////////////////////////////////////////////////////////////
3140+
30883141void MCAndroidInitEngine ()
30893142{
30903143 MCAndroidEngineCall (" onAppLaunched" , " v" , nil);
0 commit comments