aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2018-02-05 16:17:31 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2018-02-06 09:06:01 +0000
commitf301decbe39d253cc979774e2f32cde9c1212e4c (patch)
treefa542a3a4878b5d367aacccc8ebf8887c647b9e6 /src
parent7eb5f8a54bdcf0520a7aa0a2874a059060866097 (diff)
Popup: fix restoring focus for popups that did not request focus
When a popup closes, if it has active focus, it should restore focus back to where it was regardless of whether the popup originally requested focus. Even if a popup does not request focus on open, it may gain focus programmatically or when a control with click-focus is clicked, for example. Task-number: QTBUG-66113 Change-Id: I9a7c467abe781bbef390d74898d13b9a30b2695b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/quicktemplates2/qquickpopup.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp
index bb5ce660..0ef4bd64 100644
--- a/src/quicktemplates2/qquickpopup.cpp
+++ b/src/quicktemplates2/qquickpopup.cpp
@@ -443,12 +443,11 @@ bool QQuickPopupPrivate::prepareExitTransition()
return false;
if (transitionState != ExitTransition) {
- if (focus) {
- // The setFocus(false) call below removes any active focus before we're
- // able to check it in finalizeExitTransition.
- hadActiveFocusBeforeExitTransition = popupItem->hasActiveFocus();
+ // The setFocus(false) call below removes any active focus before we're
+ // able to check it in finalizeExitTransition.
+ hadActiveFocusBeforeExitTransition = popupItem->hasActiveFocus();
+ if (focus)
popupItem->setFocus(false);
- }
transitionState = ExitTransition;
emit q->aboutToHide();
}