diff --git a/src/plugins/platforms/cocoa/qcocoainputcontext.h b/src/plugins/platforms/cocoa/qcocoainputcontext.h index 07317f7705..2b97ab6a82 100644 --- a/src/plugins/platforms/cocoa/qcocoainputcontext.h +++ b/src/plugins/platforms/cocoa/qcocoainputcontext.h @@ -57,15 +57,13 @@ public: bool isValid() const override { return true; } + void setFocusObject(QObject *object) override; + void reset() override; QLocale locale() const override { return m_locale; } void updateLocale(); -private Q_SLOTS: - void connectSignals(); - void focusObjectChanged(QObject *focusObject); - private: QPointer m_focusWindow; QLocale m_locale; diff --git a/src/plugins/platforms/cocoa/qcocoainputcontext.mm b/src/plugins/platforms/cocoa/qcocoainputcontext.mm index c5e0e80f76..b700551b9a 100644 --- a/src/plugins/platforms/cocoa/qcocoainputcontext.mm +++ b/src/plugins/platforms/cocoa/qcocoainputcontext.mm @@ -84,8 +84,6 @@ QCocoaInputContext::QCocoaInputContext() : QPlatformInputContext() , m_focusWindow(QGuiApplication::focusWindow()) { - QMetaObject::invokeMethod(this, "connectSignals", Qt::QueuedConnection); - m_inputSourceObserver = QMacNotificationObserver(nil, NSTextInputContextKeyboardSelectionDidChangeNotification, [&]() { qCDebug(lcQpaInputMethods) << "Text input source changed"; @@ -123,13 +121,7 @@ void QCocoaInputContext::reset() } } -void QCocoaInputContext::connectSignals() -{ - connect(qApp, SIGNAL(focusObjectChanged(QObject*)), this, SLOT(focusObjectChanged(QObject*))); - focusObjectChanged(qApp->focusObject()); -} - -void QCocoaInputContext::focusObjectChanged(QObject *focusObject) +void QCocoaInputContext::setFocusObject(QObject *focusObject) { qCDebug(lcQpaInputMethods) << "Focus object changed to" << focusObject;