aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Eftevaag <oliver.eftevaag@qt.io>2022-09-07 15:16:27 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-09-09 09:46:55 +0000
commit68192641b611631d4852f41895f6963738822d06 (patch)
tree5cf37b2cbd43820b13782676c24e9ef8db2013b3
parent75a21c3b7b6df3a24ba2abfc291bcdd9c5030b67 (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>
-rw-r--r--src/quicktemplates2/qquickpopup.cpp7
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();