diff options
author | James Turner <james.turner@kdab.com> | 2012-04-13 10:57:43 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-16 19:36:48 +0200 |
commit | 617c026d65cbc364c53669c6abcd3c0539394ca2 (patch) | |
tree | f799ea0911a636bb33094a793f81d272094f958b | |
parent | 9487acb9d2dea07a89a82c1a723bd08c45133cdd (diff) |
Add focusWindowChanged signal to QGuiApplication
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 <morten.sorvig@nokia.com>
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 9 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication.h | 1 |
2 files changed, 10 insertions, 0 deletions
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 @@ -521,6 +521,13 @@ QWindow *QGuiApplication::focusWindow() */ /*! + \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 *); |