diff options
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformintegration.cpp | 13 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformintegration.h | 4 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp index e0c437be27..c81cc66166 100644 --- a/src/plugins/platforms/android/qandroidplatformintegration.cpp +++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp @@ -74,6 +74,8 @@ #include "qandroidplatformvulkaninstance.h" #endif +#include <QtGui/qpa/qplatforminputcontextfactory_p.h> + QT_BEGIN_NAMESPACE int QAndroidPlatformIntegration::m_defaultGeometryWidth = 320; @@ -255,6 +257,15 @@ static bool needsBasicRenderloopWorkaround() return needsWorkaround; } +void QAndroidPlatformIntegration::initialize() +{ + const QString icStr = QPlatformInputContextFactory::requested(); + if (icStr.isNull()) + m_inputContext.reset(new QAndroidInputContext); + else + m_inputContext.reset(QPlatformInputContextFactory::create(icStr)); +} + bool QAndroidPlatformIntegration::hasCapability(Capability cap) const { switch (cap) { @@ -366,7 +377,7 @@ QPlatformClipboard *QAndroidPlatformIntegration::clipboard() const QPlatformInputContext *QAndroidPlatformIntegration::inputContext() const { - return &m_platformInputContext; + return m_inputContext.data(); } QPlatformNativeInterface *QAndroidPlatformIntegration::nativeInterface() const diff --git a/src/plugins/platforms/android/qandroidplatformintegration.h b/src/plugins/platforms/android/qandroidplatformintegration.h index c795c499bc..ecbde4f951 100644 --- a/src/plugins/platforms/android/qandroidplatformintegration.h +++ b/src/plugins/platforms/android/qandroidplatformintegration.h @@ -81,6 +81,8 @@ public: QAndroidPlatformIntegration(const QStringList ¶mList); ~QAndroidPlatformIntegration(); + void initialize() override; + bool hasCapability(QPlatformIntegration::Capability cap) const override; QPlatformWindow *createPlatformWindow(QWindow *window) const override; @@ -167,7 +169,7 @@ private: mutable QPlatformAccessibility *m_accessibility; #endif - mutable QAndroidInputContext m_platformInputContext; + QScopedPointer<QPlatformInputContext> m_inputContext; }; QT_END_NAMESPACE |