Send windowControllerWillLoadNib: and windowControllerDidLoadNib: to

the owner of the nib, since this is what Apple seems to do and since
this behavior is more useful when a non-document class uses a window
controller.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31491 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
wlux 2010-10-08 06:46:58 +00:00
parent fd98ae8cbc
commit 15c24d53a9
2 changed files with 22 additions and 8 deletions

View file

@ -1,3 +1,11 @@
2010-10-08 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/NSWindowController.m (-window): Send
windowControllerWillLoadNib: and windowControllerDidLoadNib: to
the owner of the nib, since this is what Apple seems to do and
since this behavior is more useful when a non-document class uses
a window controller.
2010-09-27 Quentin Mathe <quentin.mathe@gmail.com> 2010-09-27 Quentin Mathe <quentin.mathe@gmail.com>
Fixed NSOutlineView to use incremental loading as Mac OS X does. Fixed NSOutlineView to use incremental loading as Mac OS X does.

View file

@ -295,21 +295,27 @@
{ {
// Do all the notifications. Yes, the docs say this should // Do all the notifications. Yes, the docs say this should
// be implemented here instead of in -loadWindow itself. // be implemented here instead of in -loadWindow itself.
// Note: The docs say that windowController{Will,Did}LoadNib: are sent
// to the window controller's document, but Apple's implementation
// really sends them to the owner of the nib. Since this behavior is
// more useful, in particular when non-document classes use a window
// controller, we implement it here too.
[self windowWillLoad]; [self windowWillLoad];
if ([_document respondsToSelector: if (_owner != self &&
@selector(windowControllerWillLoadNib:)]) [_owner respondsToSelector: @selector(windowControllerWillLoadNib:)])
{ {
[_document windowControllerWillLoadNib:self]; [_owner windowControllerWillLoadNib: self];
} }
[self loadWindow]; [self loadWindow];
if ([self isWindowLoaded]) if ([self isWindowLoaded])
{ {
[self _windowDidLoad]; [self _windowDidLoad];
if ([_document respondsToSelector: if (_owner != self &&
@selector(windowControllerDidLoadNib:)]) [_owner respondsToSelector: @selector(windowControllerDidLoadNib:)])
{ {
[_document windowControllerDidLoadNib:self]; [_owner windowControllerDidLoadNib: self];
} }
} }
} }