diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2021-06-11 14:17:35 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-06-12 01:10:13 +0000 |
commit | a890596770f928303b75cac8c8503afd61f85e26 (patch) | |
tree | c593a07f6dc3ab47868dc4023c527cb5023e17ec /src | |
parent | f17d8982d7ca774a45b37f78a3d4cc3ce1042217 (diff) |
Deliver WindowActivate/Deactivate events to QWindow
We need those events to trigger palette color group changes in QQuickItem
without having to connect every item to yet another QWindow signal.
Task-number: QTBUG-93752
Change-Id: I8534808cdaab828e5876f8fda31567aeb1b4272a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit b65159a5ea8db05165b2eaab8e180a12f30063e4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 10 | ||||
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 1 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 14470b900d..101b33f94a 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -3478,8 +3478,16 @@ void QGuiApplicationPrivate::notifyLayoutDirectionChange() } } -void QGuiApplicationPrivate::notifyActiveWindowChange(QWindow *) +void QGuiApplicationPrivate::notifyActiveWindowChange(QWindow *prev) { + if (prev) { + QEvent de(QEvent::WindowDeactivate); + QCoreApplication::sendEvent(prev, &de); + } + if (self->focus_window) { + QEvent ae(QEvent::WindowActivate); + QCoreApplication::sendEvent(focus_window, &ae); + } } /*! diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 430ccfe132..fb88142076 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -1921,6 +1921,7 @@ void QApplicationPrivate::notifyActiveWindowChange(QWindow *previous) if (widget->inherits("QAxHostWidget")) widget->setFocus(Qt::ActiveWindowFocusReason); } + // don't call base class to avoid double delivery of WindowActivate/Deactivate events } /*!internal |