diff options
author | Teemu Katajisto <teemu.katajisto@digia.com> | 2012-10-10 16:05:22 +0300 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-17 12:55:49 +0200 |
commit | 037d1e18e39f24b8ebb2772c20444d4b44cfb12b (patch) | |
tree | 5ad868e9db5d163827ba0ba7c4fc845194fcda57 /src/plugins/platforms | |
parent | 932bf57ea284fa7ea2addafc9be6bd4585b1d249 (diff) |
Cocoa: remove current contentView when clearing window
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 <morten.sorvig@digia.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview.mm | 8 |
2 files changed, 9 insertions, 0 deletions
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]; |