Commit eb66b35c authored by Sam Lantinga's avatar Sam Lantinga

We still want the delegate functionality for windowShouldClose()

parent 9619f0bc
...@@ -29,7 +29,11 @@ ...@@ -29,7 +29,11 @@
typedef struct SDL_WindowData SDL_WindowData; typedef struct SDL_WindowData SDL_WindowData;
/* *INDENT-OFF* */ /* *INDENT-OFF* */
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
@interface Cocoa_WindowListener : NSResponder <NSWindowDelegate> {
#else
@interface Cocoa_WindowListener : NSResponder { @interface Cocoa_WindowListener : NSResponder {
#endif
SDL_WindowData *_data; SDL_WindowData *_data;
} }
......
...@@ -48,13 +48,17 @@ static __inline__ void ConvertNSRect(NSRect *r) ...@@ -48,13 +48,17 @@ static __inline__ void ConvertNSRect(NSRect *r)
center = [NSNotificationCenter defaultCenter]; center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(windowDisExpose:) name:NSWindowDidExposeNotification object:window]; if ([window delegate] != nil) {
[center addObserver:self selector:@selector(windowDidMove:) name:NSWindowDidMoveNotification object:window]; [center addObserver:self selector:@selector(windowDidExpose:) name:NSWindowDidExposeNotification object:window];
[center addObserver:self selector:@selector(windowDidResize:) name:NSWindowDidResizeNotification object:window]; [center addObserver:self selector:@selector(windowDidMove:) name:NSWindowDidMoveNotification object:window];
[center addObserver:self selector:@selector(windowDidMiniaturize:) name:NSWindowDidMiniaturizeNotification object:window]; [center addObserver:self selector:@selector(windowDidResize:) name:NSWindowDidResizeNotification object:window];
[center addObserver:self selector:@selector(windowDidDeminiaturize:) name:NSWindowDidDeminiaturizeNotification object:window]; [center addObserver:self selector:@selector(windowDidMiniaturize:) name:NSWindowDidMiniaturizeNotification object:window];
[center addObserver:self selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:window]; [center addObserver:self selector:@selector(windowDidDeminiaturize:) name:NSWindowDidDeminiaturizeNotification object:window];
[center addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignKeyNotification object:window]; [center addObserver:self selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:window];
[center addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignKeyNotification object:window];
} else {
[window setDelegate:self];
}
[center addObserver:self selector:@selector(windowDidHide:) name:NSApplicationDidHideNotification object:NSApp]; [center addObserver:self selector:@selector(windowDidHide:) name:NSApplicationDidHideNotification object:NSApp];
[center addObserver:self selector:@selector(windowDidUnhide:) name:NSApplicationDidUnhideNotification object:NSApp]; [center addObserver:self selector:@selector(windowDidUnhide:) name:NSApplicationDidUnhideNotification object:NSApp];
...@@ -76,18 +80,26 @@ static __inline__ void ConvertNSRect(NSRect *r) ...@@ -76,18 +80,26 @@ static __inline__ void ConvertNSRect(NSRect *r)
center = [NSNotificationCenter defaultCenter]; center = [NSNotificationCenter defaultCenter];
[center removeObserver:self name:NSWindowDidExposeNotification object:window]; if ([window delegate] != self) {
[center removeObserver:self name:NSWindowDidMoveNotification object:window]; [center removeObserver:self name:NSWindowDidExposeNotification object:window];
[center removeObserver:self name:NSWindowDidResizeNotification object:window]; [center removeObserver:self name:NSWindowDidMoveNotification object:window];
[center removeObserver:self name:NSWindowDidMiniaturizeNotification object:window]; [center removeObserver:self name:NSWindowDidResizeNotification object:window];
[center removeObserver:self name:NSWindowDidDeminiaturizeNotification object:window]; [center removeObserver:self name:NSWindowDidMiniaturizeNotification object:window];
[center removeObserver:self name:NSWindowDidBecomeKeyNotification object:window]; [center removeObserver:self name:NSWindowDidDeminiaturizeNotification object:window];
[center removeObserver:self name:NSWindowDidResignKeyNotification object:window]; [center removeObserver:self name:NSWindowDidBecomeKeyNotification object:window];
[center removeObserver:self name:NSWindowDidResignKeyNotification object:window];
} else {
[window setDelegate:nil];
}
[center removeObserver:self name:NSApplicationDidHideNotification object:NSApp]; [center removeObserver:self name:NSApplicationDidHideNotification object:NSApp];
[center removeObserver:self name:NSApplicationDidUnhideNotification object:NSApp]; [center removeObserver:self name:NSApplicationDidUnhideNotification object:NSApp];
[window setNextResponder:nil]; if ([window nextResponder] == self) {
[view setNextResponder:nil]; [window setNextResponder:nil];
}
if ([view nextResponder] == self) {
[view setNextResponder:nil];
}
} }
- (BOOL)windowShouldClose:(id)sender - (BOOL)windowShouldClose:(id)sender
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment