Minor corrections to toolbar to correct a memory leak.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19684 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2004-07-05 12:57:47 +00:00
parent d8efe75de4
commit 6e7ef17e28
3 changed files with 59 additions and 15 deletions

View file

@ -247,13 +247,43 @@ static const int current_version = 1;
}
}
// handle notifications
- (void) handleNotification: (NSNotification *)notification
{
NSMutableArray *toolbars = [GSToolbar _toolbars];
// We currently only worry about when our window closes.
// It's necessary to remove the toolbar which belongs to this
// window from the master list, so that it doesn't cause a
// memory leak.
[toolbars removeObjectIdenticalTo: self];
}
// Private Accessors
- (void)_setWindow: (NSWindow *)window
{
_window = window;
if(_window != window)
{
if(_window)
{
[nc removeObserver: _window];
}
if(window)
{
// watch for this window closing....
[nc addObserver: self
selector: @selector(handleNotification:)
name: NSWindowWillCloseNotification
object: window];
}
}
// We don't do an ASSIGN because the toolbar view retains us.
// call [NSWindow(Toolbar) setToolbar:] to set the toolbar window
_window = window;
}
- (NSWindow *) _window