summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoawindow.mm
diff options
context:
space:
mode:
authorTeemu Katajisto <teemu.katajisto@digia.com>2012-10-22 14:55:00 +0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-06 22:06:28 +0100
commit8e22d05dc908cf7f4f8d20ece012520d98707ee8 (patch)
tree8e18c81e3f42b1bb214fedabd29ebd33aa955cf4 /src/plugins/platforms/cocoa/qcocoawindow.mm
parent715902051a6ba28b6a9f86fce28c12c1b977630c (diff)
Cocoa: fix memory leaks
Change-Id: I2e805aa64c65b90d33924ea4a8671735dee581fd Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoawindow.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index de6e7dc43e..b9c5a401d0 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -186,6 +186,7 @@ static bool isMouseEvent(NSEvent *ev)
QCocoaWindow::QCocoaWindow(QWindow *tlw)
: QPlatformWindow(tlw)
, m_nsWindow(0)
+ , m_nsWindowDelegate(0)
, m_synchedWindowState(Qt::WindowActive)
, m_windowModality(Qt::NonModal)
, m_inConstructor(true)
@@ -217,6 +218,7 @@ QCocoaWindow::~QCocoaWindow()
clearNSWindow(m_nsWindow);
[m_contentView release];
[m_nsWindow release];
+ [m_nsWindowDelegate release];
}
void QCocoaWindow::setGeometry(const QRect &rect)
@@ -619,6 +621,8 @@ void QCocoaWindow::recreateWindow(const QPlatformWindow *parentWindow)
[m_nsWindow close];
[m_nsWindow release];
m_nsWindow = 0;
+ [m_nsWindowDelegate release];
+ m_nsWindowDelegate = 0;
}
if (!parentWindow) {
@@ -697,8 +701,8 @@ NSWindow * QCocoaWindow::createNSWindow()
void QCocoaWindow::setNSWindow(NSWindow *window)
{
- QNSWindowDelegate *delegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:this];
- [window setDelegate:delegate];
+ m_nsWindowDelegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:this];
+ [window setDelegate:m_nsWindowDelegate];
[window setAcceptsMouseMovedEvents:YES];
// Prevent Cocoa from releasing the window on close. Qt