summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoawindow.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoawindow.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index c7a57d5776..bbf487c309 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -446,6 +446,14 @@ QCocoaWindow::~QCocoaWindow()
name:nil object:m_nsWindow];
}
+ // The QNSView object may outlive the corresponding QCocoaWindow object,
+ // for example during app shutdown when the QNSView is embedded in a
+ // foregin NSView hiearchy. Clear the pointers to the QWindow/QCocoaWindow
+ // here to make sure QNSView does not dereference stale pointers.
+ if (m_qtView) {
+ [m_qtView clearQWindowPointers];
+ }
+
foreach (QCocoaWindow *child, m_childWindows) {
[m_nsWindow removeChildWindow:child->m_nsWindow];
child->m_parentCocoaWindow = 0;