diff options
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoainputcontext.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoainputcontext.mm | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoainputcontext.mm b/src/plugins/platforms/cocoa/qcocoainputcontext.mm index db3488a0f5..5ac7f72acf 100644 --- a/src/plugins/platforms/cocoa/qcocoainputcontext.mm +++ b/src/plugins/platforms/cocoa/qcocoainputcontext.mm @@ -83,7 +83,7 @@ QCocoaInputContext::QCocoaInputContext() : QPlatformInputContext() , mWindow(QGuiApplication::focusWindow()) { - connect(qApp->inputMethod(), SIGNAL(inputItemChanged()), this, SLOT(inputItemChanged())); + QMetaObject::invokeMethod(this, "connectSignals", Qt::QueuedConnection); } QCocoaInputContext::~QCocoaInputContext() @@ -114,7 +114,13 @@ void QCocoaInputContext::reset() } } -void QCocoaInputContext::inputItemChanged() +void QCocoaInputContext::connectSignals() +{ + connect(qApp, SIGNAL(focusObjectChanged(QObject*)), this, SLOT(focusObjectChanged(QObject*))); + focusObjectChanged(qApp->focusObject()); +} + +void QCocoaInputContext::focusObjectChanged(QObject *focusObject) { mWindow = QGuiApplication::focusWindow(); } |