summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2021-06-11 14:17:35 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-06-12 01:10:13 +0000
commita890596770f928303b75cac8c8503afd61f85e26 (patch)
treec593a07f6dc3ab47868dc4023c527cb5023e17ec /src
parentf17d8982d7ca774a45b37f78a3d4cc3ce1042217 (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.cpp10
-rw-r--r--src/widgets/kernel/qapplication.cpp1
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