From 6cc61f7173f7555352d36795ce92f37e86fe4838 Mon Sep 17 00:00:00 2001 From: gcasa Date: Mon, 21 May 2012 17:56:05 +0000 Subject: [PATCH] * Source/GSXibLoader.m: Added NSMenu (XibCompatibility) category with method: _isMainMenu Added NSMenu (XibCompatibility) category implementation. Modified setting main menu in awake:inContainer:withContext: Fixes bug #36427 Committed by: gcasa git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35159 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 9 +++++++++ Headers/Additions/GNUstepGUI/IMConnectors.h | 5 ++--- Source/GSXibLoader.m | 18 +++++++++++++++++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e39c0c9fd..89ee406e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-05-21 Marcian Lytwyn + + * Source/GSXibLoader.m: + Added NSMenu (XibCompatibility) category with method: _isMainMenu + Added NSMenu (XibCompatibility) category implementation. + Modified setting main menu in awake:inContainer:withContext: + Fixes bug #36427 + Committed by: gcasa + 2012-05-07 Fred Kiefer * Headers/AppKit/NSInterfaceStyle.h: Remove diff --git a/Headers/Additions/GNUstepGUI/IMConnectors.h b/Headers/Additions/GNUstepGUI/IMConnectors.h index 3df112466..67f78a99d 100644 --- a/Headers/Additions/GNUstepGUI/IMConnectors.h +++ b/Headers/Additions/GNUstepGUI/IMConnectors.h @@ -33,10 +33,9 @@ #define _GNUstep_H_IMConnectors #ifndef GNUSTEP -#import +#include #else -#import -@class NSString; +#include #endif @interface IMConnector : NSObject diff --git a/Source/GSXibLoader.m b/Source/GSXibLoader.m index 7af55b4d5..da808571c 100644 --- a/Source/GSXibLoader.m +++ b/Source/GSXibLoader.m @@ -48,6 +48,10 @@ - (void) _setMainMenu: (NSMenu*)aMenu; @end +@interface NSMenu (XibCompatibility) +- (BOOL) _isMainMenu; +@end + @interface NSCustomObject (NibCompatibility) - (void) setRealObject: (id)obj; @end @@ -56,6 +60,17 @@ - (id) nibInstantiate; @end +@implementation NSMenu (XibCompatibility) + +- (BOOL) _isMainMenu +{ + if (_name) + return [_name isEqualToString:@"_NSMainMenu"]; + return NO; +} + +@end + @implementation FirstResponder + (id) allocWithZone: (NSZone*)zone @@ -835,7 +850,8 @@ RETAIN(obj); } - if ([obj isKindOfClass: [NSMenu class]]) + if (([obj isKindOfClass: [NSMenu class]]) && + ([obj _isMainMenu])) { // add the menu... [NSApp _setMainMenu: obj];