diff options
author | Liang Qi <liang.qi@qt.io> | 2019-07-30 13:47:36 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-07-30 21:41:23 +0200 |
commit | 4aec85b6bb7c5138658610521c81f80e2f2c4d6f (patch) | |
tree | abaef77d71fc098f3e1563e97fe94a3f88e2d2ee /src/widgets/kernel | |
parent | 130fd22d399624c863bbaad2f72d2213a48e9e13 (diff) | |
parent | 71ec1d6d79c16c46837dbd10f1cd2a53027a6682 (diff) |
Merge "Merge remote-tracking branch 'origin/5.13' into dev"
Diffstat (limited to 'src/widgets/kernel')
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 209a4407a0..cdea0a570c 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -6457,8 +6457,18 @@ void QWidget::setFocusProxy(QWidget * w) } } + QWidget *oldDeepestFocusProxy = d_func()->deepestFocusProxy(); + if (!oldDeepestFocusProxy) + oldDeepestFocusProxy = this; + const bool changingAppFocusWidget = (QApplicationPrivate::focus_widget == oldDeepestFocusProxy); + d->createExtra(); d->extra->focus_proxy = w; + + if (changingAppFocusWidget) { + QWidget *newDeepestFocusProxy = d_func()->deepestFocusProxy(); + QApplicationPrivate::focus_widget = newDeepestFocusProxy ? newDeepestFocusProxy : this; + } } |