diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2017-06-26 17:40:58 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2017-06-29 12:21:59 +0000 |
commit | 92cfa3dfa638b193bf9d754dc24016f9ddb74d0d (patch) | |
tree | fd6fd6657341ef6be8c4cc9de569cb3082f246a4 /src | |
parent | d95414171fe5f13de1881ed08d2bf7bc50e6e645 (diff) |
macOS: Remove workaround for crash when closing window from title bar
The platform window is now protected by a QPointer, so we don't need
to juggle the NSWindow retain count.
Task-number: QTBUG-37287
Change-Id: Id55ea311f0793370e248aa58cc8e383b574fbb40
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/cocoa/qnswindow.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnswindow.mm | 14 |
2 files changed, 0 insertions, 15 deletions
diff --git a/src/plugins/platforms/cocoa/qnswindow.h b/src/plugins/platforms/cocoa/qnswindow.h index 62e2d93c60..b13b6d42a9 100644 --- a/src/plugins/platforms/cocoa/qnswindow.h +++ b/src/plugins/platforms/cocoa/qnswindow.h @@ -83,7 +83,6 @@ typedef NSWindow<QNSWindowProtocol> QCocoaNSWindow; - (id)initWithNSWindow:(QCocoaNSWindow *)window platformWindow:(QCocoaWindow *)platformWindow; - (void)handleWindowEvent:(NSEvent *)theEvent; -- (void)clearWindow; - (void)detachFromPlatformWindow; @end diff --git a/src/plugins/platforms/cocoa/qnswindow.mm b/src/plugins/platforms/cocoa/qnswindow.mm index 3bb2c2eb3d..96c0314769 100644 --- a/src/plugins/platforms/cocoa/qnswindow.mm +++ b/src/plugins/platforms/cocoa/qnswindow.mm @@ -114,14 +114,7 @@ static bool isMouseEvent(NSEvent *ev) - (void)handleWindowEvent:(NSEvent *)theEvent { - // The call to -[NSWindow sendEvent] may result in the window being deleted - // (e.g., when closing the window by pressing the title bar close button). - [self retain]; [self.window superSendEvent:theEvent]; - bool windowStillAlive = self.window != nil; // We need to read before releasing - [self release]; - if (!windowStillAlive) - return; if (!self.platformWindow) return; // Platform window went away while processing event @@ -143,11 +136,6 @@ static bool isMouseEvent(NSEvent *ev) self.window.delegate = nil; } -- (void)clearWindow -{ - _window = nil; -} - - (void)dealloc { _window = nil; @@ -226,7 +214,6 @@ static const bool kNoDefer = NO; - (void)dealloc { - [_helper clearWindow]; [_helper release]; _helper = nil; [super dealloc]; @@ -364,7 +351,6 @@ static const bool kNoDefer = NO; - (void)dealloc { - [_helper clearWindow]; [_helper release]; _helper = nil; [super dealloc]; |