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]

Reply via email to