diff --git a/ChangeLog b/ChangeLog index 3614b900e..b945ae79b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-06-12 Alexander Malmberg + + * Source/GSServicesManager.m (-loadServices): Only update timestamp + when the file has changed. + (-rebuildServicesMenu): Correctly remove the old menu items. + Tue Jun 11 14:11:22 2002 Nicola Pero Patch by Jeff Teunissen with changes by myself: diff --git a/Source/GSServicesManager.m b/Source/GSServicesManager.m index 8ba7d36af..696ae994e 100644 --- a/Source/GSServicesManager.m +++ b/Source/GSServicesManager.m @@ -608,16 +608,15 @@ static NSString *disabledName = @".GNUstepDisabled"; if (plist) { NSMutableSet *s; - stamp = mod; changed = YES; s = (NSMutableSet*)[NSMutableSet setWithArray: plist]; ASSIGN(_allDisabled, s); } } + /* Track most recent version of file loaded */ + ASSIGN(_disabledStamp, mod); } } - /* Track most recent version of file loaded or last time we checked */ - ASSIGN(_disabledStamp, stamp); stamp = [NSDate date]; if ([mgr fileExistsAtPath: _servicesPath]) @@ -640,15 +639,14 @@ static NSString *disabledName = @".GNUstepDisabled"; mutableContainers: YES]; if (plist) { - stamp = mod; ASSIGN(_allServices, plist); changed = YES; } } + /* Track most recent version of file loaded */ + ASSIGN(_servicesStamp, mod); } } - /* Track most recent version of file loaded or last time we checked */ - ASSIGN(_servicesStamp, stamp); if (changed) { [self rebuildServices]; @@ -742,7 +740,6 @@ static NSString *disabledName = @".GNUstepDisabled"; { if (_servicesMenu != nil) { - NSArray *itemArray; NSMutableSet *keyEquivalents; unsigned pos; unsigned loc0; @@ -750,13 +747,9 @@ static NSString *disabledName = @".GNUstepDisabled"; SEL sel = @selector(doService:); NSMenu *submenu = nil; - itemArray = [[_servicesMenu itemArray] copy]; - pos = [itemArray count]; - while (pos > 0) - { - [_servicesMenu removeItem: [itemArray objectAtIndex: --pos]]; - } - RELEASE(itemArray); + pos = [_servicesMenu numberOfItems]; + for (; pos; pos--) + [_servicesMenu removeItemAtIndex: 0]; keyEquivalents = [NSMutableSet setWithCapacity: 4]; for (loc0 = pos = 0; pos < [_menuTitles count]; pos++)