diff options
author | Oliver Eftevaag <oliver.eftevaag@qt.io> | 2022-09-07 15:16:27 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-09-09 09:46:55 +0000 |
commit | 68192641b611631d4852f41895f6963738822d06 (patch) | |
tree | 5cf37b2cbd43820b13782676c24e9ef8db2013b3 /src | |
parent | 75a21c3b7b6df3a24ba2abfc291bcdd9c5030b67 (diff) |
QQuickPopup: Close popup on "Back" keypress on Android
The Android Navigation Bar has a "Back button", which is processed in qt
as a key press event.
Apparently, it's supposed to act as a swiss army knife of escaping
contexts in application, which includes closing of popups.
Fixes: QTBUG-104535
Change-Id: I4a359946f93c8dc04da734c5f54264e4dbdd3211
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit fd01ad1e99879f9cf5b30fde79ad0bca3230c7c1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 05ce9175a4..7cf77ca75f 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -2495,7 +2495,12 @@ void QQuickPopup::keyPressEvent(QKeyEvent *event) return; #if QT_CONFIG(shortcut) - if (d->closePolicy.testFlag(QQuickPopup::CloseOnEscape) && event->matches(QKeySequence::Cancel)) { + if (d->closePolicy.testFlag(QQuickPopup::CloseOnEscape) + && (event->matches(QKeySequence::Cancel) +#if defined(Q_OS_ANDROID) + || event->key() == Qt::Key_Back +#endif + )) { event->accept(); if (d->interactive) d->closeOrReject(); |