mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 20:01:11 +00:00
Make window controller a subclass of NSResponder and manage the
responder chain. Patch by Wolfgang Lux <wolfgang.lux@gmail.com>. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26956 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
76b074a205
commit
56388864db
3 changed files with 34 additions and 15 deletions
|
@ -1,3 +1,10 @@
|
|||
2008-10-23 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Headers/AppKit/NSWindowController.h: Make a subclass of NSResponder.
|
||||
* Source/NSWindowController.m (-setWindow:): Manage the responder
|
||||
chain.
|
||||
Patch by Wolfgang Lux <wolfgang.lux@gmail.com>.
|
||||
|
||||
2008-10-21 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* Source/NSBitmapImageRep+JPEG.m: Fix broken boolean definition.
|
||||
|
|
|
@ -27,15 +27,15 @@
|
|||
#ifndef _GNUstep_H_NSWindowController
|
||||
#define _GNUstep_H_NSWindowController
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
#include <AppKit/NSNibDeclarations.h>
|
||||
#include <AppKit/NSResponder.h>
|
||||
|
||||
@class NSString;
|
||||
@class NSArray;
|
||||
@class NSWindow;
|
||||
@class NSDocument;
|
||||
|
||||
@interface NSWindowController : NSObject <NSCoding>
|
||||
@interface NSWindowController : NSResponder <NSCoding>
|
||||
{
|
||||
@private
|
||||
NSWindow *_window;
|
||||
|
|
|
@ -310,32 +310,44 @@
|
|||
|
||||
if (_window != nil)
|
||||
{
|
||||
NSResponder *responder;
|
||||
|
||||
[nc removeObserver: self
|
||||
name: NSWindowWillCloseNotification
|
||||
object: _window];
|
||||
name: NSWindowWillCloseNotification
|
||||
object: _window];
|
||||
// Remove self from the responder chain
|
||||
responder = _window;
|
||||
while (responder && [responder nextResponder] != self)
|
||||
{
|
||||
responder = [responder nextResponder];
|
||||
}
|
||||
[responder setNextResponder: [self nextResponder]];
|
||||
[_window setWindowController: nil];
|
||||
}
|
||||
|
||||
ASSIGN (_window, aWindow);
|
||||
ASSIGN(_window, aWindow);
|
||||
|
||||
if (_window != nil)
|
||||
{
|
||||
[_window setWindowController: self];
|
||||
// Put self into the responder chain
|
||||
[self setNextResponder: [_window nextResponder]];
|
||||
[_window setNextResponder: self];
|
||||
[nc addObserver: self
|
||||
selector: @selector(_windowWillClose:)
|
||||
name: NSWindowWillCloseNotification
|
||||
object: _window];
|
||||
selector: @selector(_windowWillClose:)
|
||||
name: NSWindowWillCloseNotification
|
||||
object: _window];
|
||||
|
||||
/* For information on the following, see the description in
|
||||
-setDocument: */
|
||||
-setDocument: */
|
||||
if (_document == nil)
|
||||
{
|
||||
[_window setReleasedWhenClosed: NO];
|
||||
}
|
||||
{
|
||||
[_window setReleasedWhenClosed: NO];
|
||||
}
|
||||
else
|
||||
{
|
||||
[_window setReleasedWhenClosed: YES];
|
||||
}
|
||||
{
|
||||
[_window setReleasedWhenClosed: YES];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue