Hi,
the recent changes in NSMenuItem created problems loading gmodel files.
The following changes work for me:
The first modification prevents NSMenuItem to set it's target = nil, in case
mi_menu isn't set yet.
The second modification avoids calling [NSMenuItem setSubmenu:] a second time
(raises), by just setting the menu of the item.
2000-09-10 Georg Fleischmann
* gui/Source/NSMenuItem.m
([NSMenuItem setSubmenu:]):
set target only if mi_menu != nil
* gui/Model/GMAppKit.m
([NSMenu(GMArchiverMethods) initWithModelUnarchiver:]):
set menu of item, and don't call setSubmenu: any more
*** gui/Source/NSMenuItem.m.old Sun Sep 10 21:45:32 2000
--- gui/Source/NSMenuItem.m Sun Sep 10 22:36:41 2000
***************
*** 134,146 ****
- (void) setSubmenu: (NSMenu*)submenu
{
- NSLog(@"setSubmenu: title=%@ submenu=%@", [self title], submenu);
if ([submenu supermenu] != nil)
[NSException raise: NSInvalidArgumentException
format: @"submenu already has supermenu: "];
ASSIGN(mi_submenu, submenu);
[submenu setSupermenu: mi_menu];
! [self setTarget: mi_menu];
[self setAction: @selector(submenuAction:)];
}
--- 134,146 ----
- (void) setSubmenu: (NSMenu*)submenu
{
if ([submenu supermenu] != nil)
[NSException raise: NSInvalidArgumentException
format: @"submenu already has supermenu: "];
ASSIGN(mi_submenu, submenu);
[submenu setSupermenu: mi_menu];
! if (mi_menu != nil)
! [self setTarget: mi_menu];
[self setAction: @selector(submenuAction:)];
}
*** gui/Model/GMAppKit.m.old Sun Sep 10 20:43:59 2000
--- gui/Model/GMAppKit.m Sun Sep 10 22:40:28 2000
***************
*** 871,878 ****
{
id item = [itemArray objectAtIndex:i];
! if ([item hasSubmenu])
! [self setSubmenu:[item submenu] forItem:item];
}
[self setAutoenablesItems:
--- 871,877 ----
{
id item = [itemArray objectAtIndex:i];
! [item setMenu:self];
}
[self setAutoenablesItems:
---
* Georg Fleischmann
* vhf interservice GmbH
* research and development on self-similarity and geometry of fractals
* [EMAIL PROTECTED]