aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/virtualkeyboard/plugin.cpp')
-rw-r--r--src/virtualkeyboard/plugin.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/virtualkeyboard/plugin.cpp b/src/virtualkeyboard/plugin.cpp
index 31b66481..db079f88 100644
--- a/src/virtualkeyboard/plugin.cpp
+++ b/src/virtualkeyboard/plugin.cpp
@@ -43,6 +43,9 @@
#include "declarativesettings.h"
#include "declarativetrace.h"
+static const char pluginName[] = "qtvirtualkeyboard";
+static const char inputMethodEnvVarName[] = "QT_IM_MODULE";
+
static QPointer<PlatformInputContext> platformInputContext;
static QObject *createInputContextModule(QQmlEngine *engine, QJSEngine *scriptEngine)
@@ -72,7 +75,7 @@ static QObject *createInputContextModule(QQmlEngine *engine, QJSEngine *scriptEn
QStringList PlatformInputContextPlugin::keys() const
{
- return QStringList(QStringLiteral("qtvirtualkeyboard"));
+ return QStringList(QLatin1String(pluginName));
}
QPlatformInputContext *PlatformInputContextPlugin::create(const QString &system, const QStringList &paramList)
@@ -81,6 +84,10 @@ QPlatformInputContext *PlatformInputContextPlugin::create(const QString &system,
Q_INIT_RESOURCE(content);
Q_INIT_RESOURCE(default_style);
Q_INIT_RESOURCE(retro_style);
+
+ if (!qEnvironmentVariableIsSet(inputMethodEnvVarName) || qgetenv(inputMethodEnvVarName) != pluginName)
+ return Q_NULLPTR;
+
qmlRegisterSingletonType<DeclarativeInputContext>("QtQuick.Enterprise.VirtualKeyboard", 1, 0, "InputContext", createInputContextModule);
qmlRegisterUncreatableType<DeclarativeInputEngine>("QtQuick.Enterprise.VirtualKeyboard", 1, 0, "InputEngine", "Cannot create input method engine");
qmlRegisterUncreatableType<DeclarativeShiftHandler>("QtQuick.Enterprise.VirtualKeyboard", 1, 0, "ShiftHandler", "Cannot create shift handler");