macOS: Deliver focus change events for foreign windows
If a foreign window becomes or loses focus window status, we should let QGuiApplication know about it. Task-number: QTBUG-119287 Change-Id: I550d72fa13e1c38c9b89880857db9f9cbd7f6568 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 75a5605151d203fb4c2269001dddfd3db121ea2e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
3092406d79
commit
122b4c21a0
@ -1246,16 +1246,13 @@ void QCocoaWindow::windowDidEndLiveResize()
|
|||||||
|
|
||||||
void QCocoaWindow::windowDidBecomeKey()
|
void QCocoaWindow::windowDidBecomeKey()
|
||||||
{
|
{
|
||||||
if (isForeignWindow())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// The NSWindow we're part of become key. Check if we're the first
|
// The NSWindow we're part of become key. Check if we're the first
|
||||||
// responder, and if so, deliver focus window change to our window.
|
// responder, and if so, deliver focus window change to our window.
|
||||||
if (m_view.window.firstResponder != m_view)
|
if (m_view.window.firstResponder != m_view)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
qCDebug(lcQpaWindow) << m_view.window << "became key window."
|
qCDebug(lcQpaWindow) << m_view.window << "became key window."
|
||||||
<< "Updating focus window to" << this;
|
<< "Updating focus window to" << this << "with view" << m_view;
|
||||||
|
|
||||||
if (windowIsPopupType()) {
|
if (windowIsPopupType()) {
|
||||||
qCDebug(lcQpaWindow) << "Window is popup. Skipping focus window change.";
|
qCDebug(lcQpaWindow) << "Window is popup. Skipping focus window change.";
|
||||||
@ -1269,16 +1266,13 @@ void QCocoaWindow::windowDidBecomeKey()
|
|||||||
|
|
||||||
void QCocoaWindow::windowDidResignKey()
|
void QCocoaWindow::windowDidResignKey()
|
||||||
{
|
{
|
||||||
if (isForeignWindow())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// The NSWindow we're part of lost key. Check if we're the first
|
// The NSWindow we're part of lost key. Check if we're the first
|
||||||
// responder, and if so, deliver window deactivation to our window.
|
// responder, and if so, deliver window deactivation to our window.
|
||||||
if (m_view.window.firstResponder != m_view)
|
if (m_view.window.firstResponder != m_view)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
qCDebug(lcQpaWindow) << m_view.window << "resigned key window."
|
qCDebug(lcQpaWindow) << m_view.window << "resigned key window."
|
||||||
<< "Clearing focus window" << this;
|
<< "Clearing focus window" << this << "with view" << m_view;
|
||||||
|
|
||||||
// Make sure popups are closed before we deliver activation changes, which are
|
// Make sure popups are closed before we deliver activation changes, which are
|
||||||
// otherwise ignored by QApplication.
|
// otherwise ignored by QApplication.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user