diff --git a/src/virtualkeyboard/plugin.cpp b/src/virtualkeyboard/plugin.cpp index 31b6648159393cd1118c5200a777f299e9c2328c..db079f8898e49c955137d9a5640b7212c1b892d7 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 ¶mList) @@ -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");