diff options
author | Bartlomiej Moskal <bartlomiej.moskal@qt.io> | 2020-12-03 13:36:42 +0100 |
---|---|---|
committer | Bartlomiej Moskal <bartlomiej.moskal@qt.io> | 2020-12-17 12:47:46 +0000 |
commit | 2eb77139a2deeb88c4d517dd5131f3e45d6acc1f (patch) | |
tree | 0eca098b805f5b5c6c093dc8a8111727f00e93c8 /src/plugins | |
parent | 3bc398f76669c2532ae6e3f163f994feb7e6a0bf (diff) |
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
Pick-to: 6.0 5.15
Change-Id: I67e79860b340ee5de2d13d148a222e9f1c942b93
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/android/androidjnimain.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
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; } |