mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-29 21:57:41 +00:00
new: support for releasedWhenClosed in CPWindow
This commit is contained in:
@@ -44,6 +44,7 @@
|
||||
@class CPClipView
|
||||
@class CPScrollView
|
||||
@class CALayer
|
||||
@class CPBinder
|
||||
|
||||
@global appkit_tag_dom_elements
|
||||
|
||||
@@ -3732,6 +3733,16 @@ var CPAppearanceVibrantDark = [CPAppearance appearanceNamed:CPAppearanceNameVibr
|
||||
[owners[i] updateTrackingAreas];
|
||||
}
|
||||
|
||||
// needed by CPWindow's releasedWhenClosed property
|
||||
- (void)_releaseRecursively
|
||||
{
|
||||
[_subviews makeObjectsPerformSelector:@selector(_releaseRecursively)];
|
||||
|
||||
[self _removeObservers];
|
||||
[CPBinder unbindAllForObject:self];
|
||||
[self removeFromSuperview];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask",
|
||||
|
||||
@@ -186,6 +186,7 @@ var CPWindowActionMessageKeys = [
|
||||
BOOL _constrainsToUsableScreen;
|
||||
unsigned _shadowStyle;
|
||||
BOOL _showsResizeIndicator;
|
||||
BOOL _releasedWhenClosed @accessors(property=releasedWhenClosed);
|
||||
|
||||
int _positioningMask;
|
||||
CGRect _positioningScreenRect;
|
||||
@@ -2534,6 +2535,9 @@ CPTexturedBackgroundWindowMask
|
||||
[_parentWindow removeChildWindow:self];
|
||||
[self _orderOutRecursively:NO];
|
||||
[self _detachFromChildrenClosing:!_parentWindow];
|
||||
|
||||
if (_releasedWhenClosed)
|
||||
[_contentView _releaseRecursively];
|
||||
}
|
||||
|
||||
- (void)_detachFromChildrenClosing:(BOOL)shouldCloseChildren
|
||||
|
||||
Reference in New Issue
Block a user