diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 4aa3348653..03c28a7385 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -520,6 +520,13 @@ QWindow *QGuiApplication::focusWindow() \sa focusObject() */ +/*! + \fn QGuiApplication::focusWindowChanged(QWindow *focusWindow) + + This signal is emitted when the focused window changes. + \sa focusWindow() +*/ + /*! Returns the QObject in currently active window that will be final receiver of events tied to focus, such as key events. @@ -1337,6 +1344,8 @@ void QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate if (previousFocusObject != qApp->focusObject()) self->q_updateFocusObject(qApp->focusObject()); } + + emit qApp->focusWindowChanged(newFocus); } void QGuiApplicationPrivate::processWindowStateChangedEvent(QWindowSystemInterfacePrivate::WindowStateChangedEvent *wse) diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h index 9aad39ed47..a366826c28 100644 --- a/src/gui/kernel/qguiapplication.h +++ b/src/gui/kernel/qguiapplication.h @@ -148,6 +148,7 @@ Q_SIGNALS: void screenAdded(QScreen *screen); void lastWindowClosed(); void focusObjectChanged(QObject *focusObject); + void focusWindowChanged(QWindow *focusWindow); protected: bool event(QEvent *);