From 136cbafad59909c991a80db0b992a3920a9696c6 Mon Sep 17 00:00:00 2001 From: Bartlomiej Moskal Date: Thu, 3 Dec 2020 13:36:42 +0100 Subject: Android: Pass pending state to ResumePauseListener It can happen that updateApplicationState() is called before m_androidPlatformIntegration is set. In such case, new applicationState will be remembered and propagated later. Before this change, pending application state was passed only to QWindowSystemInterface. ResumePauseListeners that are subscribed for changes to ApplicationActive/ApplicationInactive state also should be informed about new application state. Fixes: QTBUG-84737 Change-Id: I67e79860b340ee5de2d13d148a222e9f1c942b93 Reviewed-by: Rami Potinkara Reviewed-by: Assam Boudjelthia (cherry picked from commit 2eb77139a2deeb88c4d517dd5131f3e45d6acc1f) Reviewed-by: Qt Cherry-pick Bot --- src/plugins/platforms/android/androidjnimain.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/plugins/platforms') diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index bdcfb0e258..559cdc6e57 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -135,8 +135,13 @@ namespace QtAndroid m_androidPlatformIntegration = androidPlatformIntegration; // flush the pending state if necessary. - if (m_androidPlatformIntegration && (m_pendingApplicationState != -1)) + if (m_androidPlatformIntegration && (m_pendingApplicationState != -1)) { + if (m_pendingApplicationState == Qt::ApplicationActive) + QtAndroidPrivate::handleResume(); + else if (m_pendingApplicationState == Qt::ApplicationInactive) + QtAndroidPrivate::handlePause(); QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationState(m_pendingApplicationState)); + } m_pendingApplicationState = -1; } -- cgit v1.2.3