diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2021-06-15 11:34:00 +0300 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2022-02-21 19:32:30 +0800 |
commit | 222d99e0e73cfa392a4d93a539129ea304473e88 (patch) | |
tree | fcf457768e367c21ece0b2633eaa016e7fbf28ee | |
parent | eeb6623a15e6c728af941b73e7aca9a34a0bf2e2 (diff) |
Disable Windows IME when Qt Virtual Keyboard plugin is loaded
Windows IME (TSF) causes a crash when used together with Qt Virtual
Keyboard.
[ChangeLog] Disable Windows IME when Qt Virtual Keyboard plugin is
loaded
Fixes: QTBUG-93042
Change-Id: If3d4d192147b316e198fc060863c615c12f7a3a1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 71d67571cf5708315abfe39fe5f2be26764b7bd2)
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
-rw-r--r-- | src/plugin/plugin.cpp | 9 | ||||
-rw-r--r-- | src/plugin/plugin.pro | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp index 343f78c0..e4dc49bf 100644 --- a/src/plugin/plugin.cpp +++ b/src/plugin/plugin.cpp @@ -34,6 +34,9 @@ #include <QtVirtualKeyboard/private/qvirtualkeyboard_staticplugin_p.h> #include <QLoggingCategory> #include <QtQml> +#if defined(Q_OS_WIN) +#include <qt_windows.h> +#endif QT_BEGIN_NAMESPACE @@ -73,6 +76,12 @@ QPlatformInputContext *QVirtualKeyboardPlugin::create(const QString &system, con if (system.compare(system, QLatin1String(pluginName), Qt::CaseInsensitive) != 0) return Q_NULLPTR; + +#if defined(Q_OS_WIN) + // QTBUG-93042 + ImmDisableIME(0); +#endif + PlatformInputContext *platformInputContext = new PlatformInputContext(); QStringList inputMethodList; diff --git a/src/plugin/plugin.pro b/src/plugin/plugin.pro index defb3747..f974fe45 100644 --- a/src/plugin/plugin.pro +++ b/src/plugin/plugin.pro @@ -28,6 +28,7 @@ disable-layouts { win32 { QMAKE_TARGET_PRODUCT = "Qt Virtual Keyboard (Qt $$QT_VERSION)" QMAKE_TARGET_DESCRIPTION = "Virtual Keyboard for Qt." + LIBS += -limm32 } PLUGIN_TYPE = platforminputcontexts |