summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2020-01-16 16:09:33 +0200
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2020-02-06 09:48:31 +0200
commit6d6ca70538851e8334eb01550a93b60ceba75d34 (patch)
tree02330a70c51d72f35fd804c55a568806c26ba669 /src/plugins/platforms
parentc3050b6d96d636e53ead46c1009b83453565221c (diff)
Android: Allow requesting qtvirtualkeyboard with QT_IM_MODULE
Allow Android apps to request qtvirtualkeyboard using environment variable QT_IM_MODULE. Similar to commit b46fe39d940712c5d401e731e171a7ccfadfe648 for Windows platform. Task-number: QTBUG-80357 Change-Id: I584859729e60f5d73943ca5840a9dcd169cc9ecb Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.cpp13
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.h4
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 &paramList);
~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