diff options
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 |