From 037d1e18e39f24b8ebb2772c20444d4b44cfb12b Mon Sep 17 00:00:00 2001 From: Teemu Katajisto Date: Wed, 10 Oct 2012 16:05:22 +0300 Subject: Cocoa: remove current contentView when clearing window MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise they might be still events sent to view with no proper QWindow. Also, add dealloc QNSView for clean up. Task-number: QTBUG-26580 Task-number: QTBUG-27456 Change-Id: Icdbe5c39490b72ec82795c2d71e5671cea81921e Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/cocoa/qcocoawindow.mm | 1 + src/plugins/platforms/cocoa/qnsview.mm | 8 ++++++++ 2 files changed, 9 insertions(+) (limited to 'src/plugins/platforms/cocoa') diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 93d566da3b..b9ad35600e 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -713,6 +713,7 @@ void QCocoaWindow::setNSWindow(NSWindow *window) void QCocoaWindow::clearNSWindow(NSWindow *window) { + [window setContentView:nil]; [window setDelegate:nil]; [window clearPlatformWindow]; [[NSNotificationCenter defaultCenter] removeObserver:m_contentView]; diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index a953b25d84..f4ba8154ca 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -89,6 +89,14 @@ static QTouchDevice *touchDevice = 0; return self; } +- (void)dealloc +{ + CGImageRelease(m_cgImage); + m_cgImage = 0; + m_window = 0; + [super dealloc]; +} + - (id)initWithQWindow:(QWindow *)window platformWindow:(QCocoaWindow *) platformWindow { self = [self init]; -- cgit v1.2.3