diff options
Diffstat (limited to 'src/widgets/kernel/qapplication.cpp')
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 63c3f9dd9b..b1341d1015 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -1869,12 +1869,13 @@ void QApplication::setActiveWindow(QWidget* act) if (w) { w->setFocus(Qt::ActiveWindowFocusReason); } else { - // If the focus widget is not in the activate_window, clear the focus w = QApplicationPrivate::focus_widget; - if (!w && QApplicationPrivate::active_window->focusPolicy() != Qt::NoFocus) - QApplicationPrivate::setFocusWidget(QApplicationPrivate::active_window, Qt::ActiveWindowFocusReason); - else if (!QApplicationPrivate::active_window->isAncestorOf(w)) + if (!w && QApplicationPrivate::active_window->focusPolicy() != Qt::NoFocus) { + QApplicationPrivate::active_window->setFocus(Qt::ActiveWindowFocusReason); + } else if (!QApplicationPrivate::active_window->isAncestorOf(w)) { + // If the focus widget is not in the activate_window, clear the focus QApplicationPrivate::setFocusWidget(nullptr, Qt::ActiveWindowFocusReason); + } } } } |