From fcbb8144be20ed11d74a9dd52bb2cb26e3073707 Mon Sep 17 00:00:00 2001 From: wlux Date: Wed, 5 Nov 2008 22:05:58 +0000 Subject: [PATCH] Make NSApplication's responder chain for action messages consistent with Apple's documentation and the Mac OS X implementation. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27008 72102866-910b-0410-8b05-ffd578937521 --- Source/NSApplication.m | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Source/NSApplication.m b/Source/NSApplication.m index c466b781e..76577a277 100644 --- a/Source/NSApplication.m +++ b/Source/NSApplication.m @@ -2041,7 +2041,7 @@ IF_NO_GC(NSAssert([event retainCount] > 0, NSInternalInconsistencyException)); */ - (id) targetForAction: (SEL)aSelector forWindow: (NSWindow *)window { - id resp; + id resp, delegate; resp = [window firstResponder]; while (resp != nil && resp != self) @@ -2050,15 +2050,17 @@ IF_NO_GC(NSAssert([event retainCount] > 0, NSInternalInconsistencyException)); { return resp; } + if (resp == window) + { + delegate = [window delegate]; + if ([delegate respondsToSelector: aSelector]) + { + return delegate; + } + } resp = [resp nextResponder]; } - resp = [window delegate]; - if (resp != nil && [resp respondsToSelector: aSelector]) - { - return resp; - } - if ([NSDocumentController isDocumentBasedApplication]) { resp = [[NSDocumentController sharedDocumentController]