summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorTeemu Katajisto <teemu.katajisto@digia.com>2012-10-10 16:05:22 +0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-17 12:55:49 +0200
commit037d1e18e39f24b8ebb2772c20444d4b44cfb12b (patch)
tree5ad868e9db5d163827ba0ba7c4fc845194fcda57 /src/plugins/platforms
parent932bf57ea284fa7ea2addafc9be6bd4585b1d249 (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.mm1
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm8
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];