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];