mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 17:52:42 +00:00
Allow popover to be dismissed
This commit is contained in:
parent
bcc8011580
commit
24eee8e7dd
3 changed files with 29 additions and 9 deletions
|
@ -45,11 +45,14 @@ APPKIT_EXPORT_CLASS
|
|||
id _sourceController;
|
||||
id _destinationController;
|
||||
NSStoryboardSegueIdentifier _identifier;
|
||||
|
||||
NSString *_kind;
|
||||
NSString *_relationship;
|
||||
id _popoverAnchorView;
|
||||
NSPopoverBehavior _popoverBehavior;
|
||||
NSPopover *_popover;
|
||||
NSRectEdge _preferredEdge;
|
||||
|
||||
GSStoryboardSeguePerformHandler _handler;
|
||||
}
|
||||
|
||||
|
|
|
@ -232,12 +232,16 @@
|
|||
{
|
||||
[_realPanel close];
|
||||
[_realPanel setDelegate:nil];
|
||||
[_realPanel orderOut: nil];
|
||||
_shown = NO;
|
||||
}
|
||||
|
||||
- (IBAction) performClose: (id)sender
|
||||
{
|
||||
[_realPanel performClose:sender];
|
||||
[_realPanel setDelegate:nil];
|
||||
[_realPanel performClose: sender];
|
||||
[_realPanel setDelegate: nil];
|
||||
[_realPanel orderOut: nil];
|
||||
_shown = NO;
|
||||
}
|
||||
|
||||
- (void) showRelativeToRect: (NSRect)positioningRect
|
||||
|
|
|
@ -172,14 +172,27 @@
|
|||
}
|
||||
else if ([_kind isEqualToString: @"popover"])
|
||||
{
|
||||
NSPopover *po = [[NSPopover alloc] init];
|
||||
NSRect rect = [_popoverAnchorView frame];
|
||||
if (_popover == nil)
|
||||
{
|
||||
NSPopover *po = [[NSPopover alloc] init];
|
||||
NSRect rect = [_popoverAnchorView frame];
|
||||
|
||||
[po setBehavior: _popoverBehavior];
|
||||
[po setContentViewController: _destinationController];
|
||||
[po showRelativeToRect: rect
|
||||
ofView: _popoverAnchorView
|
||||
preferredEdge: _preferredEdge];
|
||||
_popover = po; // weak... since we manually release...
|
||||
[po setBehavior: _popoverBehavior];
|
||||
[po setContentViewController: _destinationController];
|
||||
[po showRelativeToRect: rect
|
||||
ofView: _popoverAnchorView
|
||||
preferredEdge: _preferredEdge];
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([_popover behavior] == NSPopoverBehaviorTransient)
|
||||
{
|
||||
[_popover close];
|
||||
RELEASE(_popover);
|
||||
_popover = nil;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ([_kind isEqualToString: @"sheet"])
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue