diff --git a/src/plugins/platforms/cocoa/qcocoawindow.h b/src/plugins/platforms/cocoa/qcocoawindow.h index deba861fcc..e992263c82 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.h +++ b/src/plugins/platforms/cocoa/qcocoawindow.h @@ -91,6 +91,7 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSWindowHelper); @interface QT_MANGLE_NAMESPACE(QNSWindow) : NSWindow { QNSWindowHelper *_helper; + bool _closed; } @property (nonatomic, readonly) QNSWindowHelper *helper; diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 6ef459566a..7d41562863 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -303,6 +303,14 @@ - (void)closeAndRelease } } +- (void)close +{ + if (!_closed) { + _closed = true; + [super close]; + } +} + - (void)dealloc { [_helper clearWindow]; @@ -612,6 +620,7 @@ static void qRegisterNotificationCallbacks() }); [m_view release]; + [m_nsWindow close]; [m_nsWindow release]; [m_windowCursor release]; }