summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaintegration.mm
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>2015-07-27 15:59:44 +0200
committerGabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>2015-08-01 21:34:07 +0000
commit0193d6d5bbea142358445a6b620a641a7b3dcfa7 (patch)
tree459d7a649814915bcb56fb6efc6e3ef8474009b7 /src/plugins/platforms/cocoa/qcocoaintegration.mm
parentb4f266c4e43c457f4d8b52d898cbb3f3066d40fa (diff)
Cocoa Integration: Support non-native input context plugins
This is useful, for example, when we want to test the virtual keyboard on OS X. It uses the usual QT_IM_MODULE code path provided by QPlatformInputContextFactory if that environment variable is set. If not, it defaults to QCocoaInputContext. Change-Id: Ib917d7bd2f4e86eacbc50dd7592cc288a9a702de Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaintegration.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index 04d5769044..545e920057 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -48,6 +48,7 @@
#include "qcocoaaccessibility.h"
#include <qpa/qplatformaccessibility.h>
+#include <qpa/qplatforminputcontextfactory_p.h>
#include <QtCore/qcoreapplication.h>
#include <IOKit/graphics/IOGraphicsLib.h>
@@ -247,7 +248,6 @@ QCocoaIntegration *QCocoaIntegration::mInstance = 0;
QCocoaIntegration::QCocoaIntegration()
: mFontDb(new QCoreTextFontDatabase())
- , mInputContext(new QCocoaInputContext)
#ifndef QT_NO_ACCESSIBILITY
, mAccessibility(new QCocoaAccessibility)
#endif
@@ -261,6 +261,10 @@ QCocoaIntegration::QCocoaIntegration()
qWarning("Creating multiple Cocoa platform integrations is not supported");
mInstance = this;
+ mInputContext.reset(QPlatformInputContextFactory::create());
+ if (mInputContext.isNull())
+ mInputContext.reset(new QCocoaInputContext());
+
initResources();
QMacAutoReleasePool pool;
@@ -462,7 +466,7 @@ QCocoaNativeInterface *QCocoaIntegration::nativeInterface() const
return mNativeInterface.data();
}
-QCocoaInputContext *QCocoaIntegration::inputContext() const
+QPlatformInputContext *QCocoaIntegration::inputContext() const
{
return mInputContext.data();
}