summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@digia.com>2013-12-02 22:32:13 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-04 09:11:43 +0100
commitbd9cf0b7b96ea5836d18259b073870f8b145b46d (patch)
tree7291a3b2d46c155eb2a3b8c4d26ec613c8f23ea5 /src/plugins
parent32f71db1bdcf93c8a03a9ef11ff4044479afa369 (diff)
iOS: fix crash when focusWindow changes while keyboard is open
It turns out we cannot rely on QGuiApplication::focusWindow() to be non-zero at all times (e.g when pop-ups are closing etc). So instead use m_focusView.qwindow which points to a valid QWindow. This window is the same as QGuiApplication::focusWindow most of the time, except when a focus window closes. For those cases we get a new call to scrollRootView immediately after with m_focusView updated to reflect the new focusWindow. Task-number: QTBUG-35339 Change-Id: Icb3a8d3140af1f1904495a9289c8c26ab79e70f6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/ios/qiosinputcontext.mm2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm
index 0e43429015..ea6a0bd4a6 100644
--- a/src/plugins/platforms/ios/qiosinputcontext.mm
+++ b/src/plugins/platforms/ios/qiosinputcontext.mm
@@ -270,7 +270,7 @@ void QIOSInputContext::scrollRootView()
&& m_keyboardListener->m_keyboardVisibleAndDocked
&& m_focusView.window == view.window) {
QRectF cursorRect = qGuiApp->inputMethod()->cursorRectangle();
- cursorRect.translate(qGuiApp->focusWindow()->geometry().topLeft());
+ cursorRect.translate(m_focusView.qwindow->geometry().topLeft());
qreal keyboardY = m_keyboardListener->m_keyboardEndRect.y();
int statusBarY = qGuiApp->primaryScreen()->availableGeometry().y();
const int margin = 20;