From 7942f7eedf4a8d7fac82737ea490f3c443e82149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tinja=20Paavosepp=C3=A4?= Date: Fri, 23 Feb 2024 14:41:30 +0200 Subject: Android: Resize QWindow when its QtView is resized If the Android View is resized, the QWindow instantiated by it should be resized accordingly. Task-number: QTBUG-122626 Pick-to: 6.7 Change-Id: I7bfbca149f927718d1e28cdabfa8759afbd06039 Reviewed-by: Assam Boudjelthia --- src/plugins/platforms/android/androidwindowembedding.cpp | 10 +++++++++- src/plugins/platforms/android/androidwindowembedding.h | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'src/plugins/platforms/android') diff --git a/src/plugins/platforms/android/androidwindowembedding.cpp b/src/plugins/platforms/android/androidwindowembedding.cpp index 7d82ac6d87..e72bb326cc 100644 --- a/src/plugins/platforms/android/androidwindowembedding.cpp +++ b/src/plugins/platforms/android/androidwindowembedding.cpp @@ -45,6 +45,13 @@ namespace QtAndroidWindowEmbedding { }); } + void resizeWindow(JNIEnv *, jclass, jlong windowRef, jint width, jint height) + { + QWindow *window = reinterpret_cast(windowRef); + window->setWidth(width); + window->setHeight(height); + } + bool registerNatives(QJniEnvironment& env) { using namespace QtJniTypes; bool success = env.registerNativeMethods(Traits::className(), @@ -52,7 +59,8 @@ namespace QtAndroidWindowEmbedding { Q_JNI_NATIVE_SCOPED_METHOD(deleteWindow, QtAndroidWindowEmbedding)}); success &= env.registerNativeMethods(Traits::className(), - {Q_JNI_NATIVE_SCOPED_METHOD(setWindowVisible, QtAndroidWindowEmbedding)}); + {Q_JNI_NATIVE_SCOPED_METHOD(setWindowVisible, QtAndroidWindowEmbedding), + Q_JNI_NATIVE_SCOPED_METHOD(resizeWindow, QtAndroidWindowEmbedding)}); return success; } diff --git a/src/plugins/platforms/android/androidwindowembedding.h b/src/plugins/platforms/android/androidwindowembedding.h index f9d92d4afc..4f3261a30b 100644 --- a/src/plugins/platforms/android/androidwindowembedding.h +++ b/src/plugins/platforms/android/androidwindowembedding.h @@ -31,6 +31,8 @@ namespace QtAndroidWindowEmbedding Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(deleteWindow) void setWindowVisible(JNIEnv *, jclass, jlong window, jboolean visible); Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(setWindowVisible) + void resizeWindow(JNIEnv *, jclass, jlong windowRef, jint width, jint height); + Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(resizeWindow) }; QT_END_NAMESPACE -- cgit v1.2.3