From eafa224c3bfff86839581536d832cbaf8045a264 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Sun, 17 Nov 2013 01:32:24 +0100 Subject: iOS: decouple QIOSWindow and QIOSInputContext Change-Id: I85dda6fc0c6d2d11709b8bcdc0de6c0cef42d40f Reviewed-by: Lars Knoll --- src/plugins/platforms/ios/qiosinputcontext.h | 4 ++-- src/plugins/platforms/ios/qiosinputcontext.mm | 4 +++- src/plugins/platforms/ios/qioswindow.mm | 2 -- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/platforms/ios/qiosinputcontext.h b/src/plugins/platforms/ios/qiosinputcontext.h index 78c1b260e6..f03b13d002 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.h +++ b/src/plugins/platforms/ios/qiosinputcontext.h @@ -61,11 +61,11 @@ public: void hideInputPanel(); bool isInputPanelVisible() const; - void focusViewChanged(UIView *view); + void focusWindowChanged(QWindow *focusWindow); private: QIOSKeyboardListener *m_keyboardListener; - UIView *m_focusView; + UIView *m_focusView; bool m_hasPendingHideRequest; }; diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm index d430589037..ed17dee0c9 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.mm +++ b/src/plugins/platforms/ios/qiosinputcontext.mm @@ -101,6 +101,7 @@ QIOSInputContext::QIOSInputContext() , m_focusView(0) , m_hasPendingHideRequest(false) { + connect(qGuiApp, &QGuiApplication::focusWindowChanged, this, &QIOSInputContext::focusWindowChanged); } QIOSInputContext::~QIOSInputContext() @@ -142,8 +143,9 @@ bool QIOSInputContext::isInputPanelVisible() const return m_keyboardListener->m_keyboardVisible; } -void QIOSInputContext::focusViewChanged(UIView *view) +void QIOSInputContext::focusWindowChanged(QWindow *focusWindow) { + UIView *view = reinterpret_cast *>(focusWindow->handle()->winId()); if ([m_focusView isFirstResponder]) [view becomeFirstResponder]; [m_focusView release]; diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm index af51218654..8124d8ffb9 100644 --- a/src/plugins/platforms/ios/qioswindow.mm +++ b/src/plugins/platforms/ios/qioswindow.mm @@ -610,8 +610,6 @@ void QIOSWindow::requestActivateWindow() if (window()->isTopLevel()) raise(); - QPlatformInputContext *context = QGuiApplicationPrivate::platformIntegration()->inputContext(); - static_cast(context)->focusViewChanged(m_view); QWindowSystemInterface::handleWindowActivated(window()); } -- cgit v1.2.3