From 37c29fca7d5d189985ce81b6cb0fa789d73afbcd Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Tue, 21 Nov 2023 21:43:57 +0200 Subject: [PATCH] Android: Register a default keyboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When QWindowSystemInterface::handleKeyEvent() is called under QtAndroidInput's keyDown() JNI native method callback, it throws the following warning: W Gallery : QObject: Cannot create children for a parent that is in a different thread. W Gallery : (Parent is QGuiApplication(0x707968a2e0), parent's thread is QThread(0x70d6477280), current thread is QThread(0x70d18ff790) when no keyboard QInputDevice has been registered, this behavior is present at least on Android Emulators. Task-number: QTBUG-46412 Fixes: QTBUG-106928 Fixes: QTBUG-118421 Change-Id: Iec1c6e3a599e1e553d049df3021653a0d4197e7d Reviewed-by: Tor Arne Vestbø (cherry picked from commit d48e81f7a46e7cf968fa5bc88296eb8de8dc77c5) --- src/plugins/platforms/android/qandroidplatformintegration.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp index 9f0b1c8b2f6..dadd3a7dd19 100644 --- a/src/plugins/platforms/android/qandroidplatformintegration.cpp +++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp @@ -269,6 +269,10 @@ QAndroidPlatformIntegration::QAndroidPlatformIntegration(const QStringList ¶ maxTouchPoints, 0); QWindowSystemInterface::registerInputDevice(m_touchDevice); + + QWindowSystemInterface::registerInputDevice( + new QInputDevice("Virtual keyboard"_L1, 0, QInputDevice::DeviceType::Keyboard, + {}, qApp)); } auto contentResolver = javaActivity.callObjectMethod("getContentResolver", "()Landroid/content/ContentResolver;");