diff --git a/Palettes/0Menus/GormMenuEditor.m b/Palettes/0Menus/GormMenuEditor.m index 60726650..197c0cf3 100644 --- a/Palettes/0Menus/GormMenuEditor.m +++ b/Palettes/0Menus/GormMenuEditor.m @@ -99,6 +99,17 @@ - (NSWindow*) window; @end +@interface NSResponder (GormMenuEditorPrivate) +- (NSMenu *) _menu; +@end + +@implementation NSResponder (GormMenuEditorPrivate) +- (NSMenu *) _menu +{ + return _menu; +} +@end + @interface GormMenuEditor (Private) - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent; @end @@ -712,7 +723,7 @@ } else { - if ([_menu _ownedByPopUp]) + if ([[self _menu] _ownedByPopUp]) { [item setOnStateImage: nil]; [item setMixedStateImage: nil]; diff --git a/Palettes/0Menus/GormNSMenu.m b/Palettes/0Menus/GormNSMenu.m index 3deb86a6..924e1ac1 100644 --- a/Palettes/0Menus/GormNSMenu.m +++ b/Palettes/0Menus/GormNSMenu.m @@ -24,6 +24,24 @@ #include "GormNSMenu.h" +// this must be done here, since Gorm must access this variable.. +@interface NSResponder (GormNSMenuPrivate) +- (NSMenu *) _menu; +- (void) _setMenu: (NSMenu *)m; +@end + +@implementation NSResponder (GormNSMenuPrivate) +- (NSMenu *) _menu +{ + return _menu; +} + +- (void) _setMenu: (NSMenu *)m +{ + _menu = m; +} +@end + @interface GormNSMenuWindow : NSWindow { GormDocument *_document; @@ -42,7 +60,7 @@ - (void)setMenu: (NSMenu*)menu; { - _menu = menu; + [self _setMenu: menu]; } - (void)setDocument: (GormDocument *)document @@ -53,11 +71,11 @@ - (void)resignMainWindow { [super resignMainWindow]; - if ([_menu _ownedByPopUp]) + if ([[self _menu] _ownedByPopUp]) { [[NSRunLoop currentRunLoop] performSelector: @selector(close) - target: _menu + target: [self _menu] argument: nil order: 500000 modes: [NSArray arrayWithObjects: @@ -70,7 +88,7 @@ - (void)becomeMainWindow { [super becomeMainWindow]; - if ([_menu _ownedByPopUp] ) + if ([[self _menu] _ownedByPopUp] ) { }