diff options
Diffstat (limited to 'src/plugins/platforms/windows')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsintegration.cpp | 13 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowsintegration.h | 1 |
2 files changed, 12 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 diff --git a/src/plugins/platforms/windows/qwindowsintegration.h b/src/plugins/platforms/windows/qwindowsintegration.h index 2202ebd39e..0f417c8239 100644 --- a/src/plugins/platforms/windows/qwindowsintegration.h +++ b/src/plugins/platforms/windows/qwindowsintegration.h @@ -76,6 +76,7 @@ public: virtual QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const; #endif virtual QAbstractEventDispatcher *createEventDispatcher() const; + void initialize() Q_DECL_OVERRIDE; #ifndef QT_NO_CLIPBOARD virtual QPlatformClipboard *clipboard() const; # ifndef QT_NO_DRAGANDDROP |