From 2f505b79a49bdf5ba8d084e13ab339bcf956c849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 12 Oct 2016 15:04:11 +0200 Subject: macOS: Use QPointer to track QNSView -> QCocoaWindow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I4de581dda03d25e781112eff34de28dfd1797a7f Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/cocoa/qcocoawindow.mm | 7 ------- src/plugins/platforms/cocoa/qnsview.h | 3 +-- src/plugins/platforms/cocoa/qnsview.mm | 6 ------ 3 files changed, 1 insertion(+), 15 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index c75090f0c2..6700bc28a9 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -433,13 +433,6 @@ QCocoaWindow::~QCocoaWindow() if (window()->type() != Qt::ForeignWindow) [[NSNotificationCenter defaultCenter] removeObserver:m_view]; - // 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 (window()->type() != Qt::ForeignWindow) - [qnsview_cast(m_view) clearQWindowPointers]; - // While it is unlikely that this window will be in the popup stack // during deletetion we clear any pointers here to make sure. if (QCocoaIntegration::instance()) { diff --git a/src/plugins/platforms/cocoa/qnsview.h b/src/plugins/platforms/cocoa/qnsview.h index 963b29ebbb..57b159bbf5 100644 --- a/src/plugins/platforms/cocoa/qnsview.h +++ b/src/plugins/platforms/cocoa/qnsview.h @@ -65,7 +65,7 @@ Q_FORWARD_DECLARE_OBJC_CLASS(QT_MANGLE_NAMESPACE(QNSViewMouseMoveHelper)); uchar *m_maskData; bool m_shouldInvalidateWindowShadow; QPointer m_window; - QCocoaWindow *m_platformWindow; + QPointer m_platformWindow; NSTrackingArea *m_trackingArea; Qt::MouseButtons m_buttons; Qt::MouseButtons m_acceptedMouseDowns; @@ -92,7 +92,6 @@ Q_FORWARD_DECLARE_OBJC_CLASS(QT_MANGLE_NAMESPACE(QNSViewMouseMoveHelper)); - (id)init; - (id)initWithQWindow:(QWindow *)window platformWindow:(QCocoaWindow *) platformWindow; -- (void) clearQWindowPointers; #ifndef QT_NO_OPENGL - (void)setQCocoaGLContext:(QCocoaGLContext *)context; #endif diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index be2342d51e..1f92dc82d6 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -229,12 +229,6 @@ static bool _q_dontOverrideCtrlLMB = false; return self; } -- (void) clearQWindowPointers -{ - m_window = 0; - m_platformWindow = 0; -} - #ifndef QT_NO_OPENGL - (void) setQCocoaGLContext:(QCocoaGLContext *)context { -- cgit v1.2.3