aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2021-06-15 11:34:00 +0300
committerMitch Curtis <mitch.curtis@qt.io>2022-02-21 19:32:30 +0800
commit222d99e0e73cfa392a4d93a539129ea304473e88 (patch)
treefcf457768e367c21ece0b2633eaa016e7fbf28ee
parenteeb6623a15e6c728af941b73e7aca9a34a0bf2e2 (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.cpp9
-rw-r--r--src/plugin/plugin.pro1
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