diff options
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsintegration.cpp')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsintegration.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp index e0e8753e14..de34663286 100644 --- a/src/plugins/platforms/windows/qwindowsintegration.cpp +++ b/src/plugins/platforms/windows/qwindowsintegration.cpp @@ -83,6 +83,7 @@ # include "qwindowssessionmanager.h" #endif #include <QtGui/private/qguiapplication_p.h> +#include <QtGui/qpa/qplatforminputcontextfactory_p.h> #include <QtCore/private/qeventdispatcher_win_p.h> #include <QtCore/QDebug> @@ -158,7 +159,7 @@ struct QWindowsIntegrationPrivate #if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2) QOpenGLStaticContextPtr m_staticOpenGLContext; #endif - QWindowsInputContext m_inputContext; + QScopedPointer<QPlatformInputContext> m_inputContext; #ifndef QT_NO_ACCESSIBILITY QWindowsAccessibility m_accessibility; #endif @@ -224,6 +225,14 @@ QWindowsIntegration::~QWindowsIntegration() { } +void QWindowsIntegration::initialize() +{ + if (QPlatformInputContext *pluginContext = QPlatformInputContextFactory::create()) + d->m_inputContext.reset(pluginContext); + else + d->m_inputContext.reset(new QWindowsInputContext); +} + bool QWindowsIntegration::hasCapability(QPlatformIntegration::Capability cap) const { switch (cap) { @@ -441,7 +450,7 @@ QPlatformDrag *QWindowsIntegration::drag() const QPlatformInputContext * QWindowsIntegration::inputContext() const { - return &d->m_inputContext; + return d->m_inputContext.data(); } #ifndef QT_NO_ACCESSIBILITY |