diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2021-06-15 11:34:00 +0300 |
---|---|---|
committer | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2021-06-15 13:28:19 +0300 |
commit | 71d67571cf5708315abfe39fe5f2be26764b7bd2 (patch) | |
tree | e36b564728c6d641d553963e8e6356ddcb51c77d /src | |
parent | 63a944ff12580f2c333a162ecaecd12419a39c10 (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
Pick-to: 6.2 6.1 5.15
Change-Id: If3d4d192147b316e198fc060863c615c12f7a3a1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugin/CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/plugin/plugin.cpp | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/plugin/CMakeLists.txt b/src/plugin/CMakeLists.txt index aeb6e143..32042e08 100644 --- a/src/plugin/CMakeLists.txt +++ b/src/plugin/CMakeLists.txt @@ -40,6 +40,11 @@ qt_internal_extend_target(QVirtualKeyboardPlugin CONDITION disable-layouts QT_VIRTUALKEYBOARD_DISABLE_LAYOUTS ) +qt_internal_extend_target(QVirtualKeyboardPlugin CONDITION WIN32 + LIBRARIES + Imm32.lib +) + #### Keys ignored in scope 4:.:.:plugin.pro:WIN32: # QMAKE_TARGET_DESCRIPTION = "Virtual Keyboard for Qt." # QMAKE_TARGET_PRODUCT = "Qt Virtual Keyboard (Qt $$QT_VERSION)" diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp index 4e42ee1b..5976fccf 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; |