From 4c6ebe5f9e4ddc0d799a0f2bf4aef9f7e48e0dfb Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Wed, 27 Aug 2014 10:56:53 +0200 Subject: Android quickfix: Avoid crash at shutdown Qt Quick does a processEvents() at shutdown. On some versions of Android, this can trigger a getTextAfterCursor() after QGuiApplication shutdown. This patch still has a theoretical race condition, but should reduce the crash probablity to practically zero. [ChangeLog][Android] Fixed bug on some devices where the application would crash at shutdown if the virtual keyboard was open. Task-number: QTBUG-40957 Change-Id: Iefcc10a77e3d506c32ea151c27a3e87a7be40e68 Reviewed-by: BogDan Vatra --- src/plugins/platforms/android/qandroidinputcontext.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp index 5d47d2fda4..acd7a42ba2 100644 --- a/src/plugins/platforms/android/qandroidinputcontext.cpp +++ b/src/plugins/platforms/android/qandroidinputcontext.cpp @@ -995,8 +995,10 @@ Q_INVOKABLE QVariant QAndroidInputContext::queryFocusObjectUnsafe(Qt::InputMetho QVariant QAndroidInputContext::queryFocusObjectThreadSafe(Qt::InputMethodQuery query, QVariant argument) { - bool inMainThread = qGuiApp->thread() == QThread::currentThread(); QVariant retval; + if (!qGuiApp) + return retval; + bool inMainThread = qGuiApp->thread() == QThread::currentThread(); QMetaObject::invokeMethod(this, "queryFocusObjectUnsafe", inMainThread ? Qt::DirectConnection : Qt::BlockingQueuedConnection, -- cgit v1.2.3