From 617c026d65cbc364c53669c6abcd3c0539394ca2 Mon Sep 17 00:00:00 2001 From: James Turner Date: Fri, 13 Apr 2012 10:57:43 +0100 Subject: Add focusWindowChanged signal to QGuiApplication MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Required for Cocoa platform menus support, we need a way to update state after focusWindow() result changes. Change-Id: Idc573888c3d75bcbff2252e243c4b57b15fc2fcd Reviewed-by: Morten Johan Sørvig --- src/gui/kernel/qguiapplication.cpp | 9 +++++++++ src/gui/kernel/qguiapplication.h | 1 + 2 files changed, 10 insertions(+) (limited to 'src/gui') 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 *); -- cgit v1.2.3