From a890596770f928303b75cac8c8503afd61f85e26 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Fri, 11 Jun 2021 14:17:35 +0200 Subject: Deliver WindowActivate/Deactivate events to QWindow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ø (cherry picked from commit b65159a5ea8db05165b2eaab8e180a12f30063e4) Reviewed-by: Qt Cherry-pick Bot --- src/gui/kernel/qguiapplication.cpp | 10 +++++++++- src/widgets/kernel/qapplication.cpp | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src') 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 -- cgit v1.2.3