summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsintegration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsintegration.cpp')
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp13
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