diff --git a/ChangeLog b/ChangeLog index 06b144a82..9c41203af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-10-29 02:22 Alexander Malmberg + + * Source/GSServicesManager.m (-updateServicesMenu): Always enable + an item with a submenu. + 2003-10-27 Richard Frith-Macdonald * Source/NSSavePanel.m: Change to have entire window accept DnD. diff --git a/Source/GSServicesManager.m b/Source/GSServicesManager.m index 1d360eb69..0c739bc0c 100644 --- a/Source/GSServicesManager.m +++ b/Source/GSServicesManager.m @@ -1252,13 +1252,20 @@ static NSString *disabledName = @".GNUstepDisabled"; /* * If there is no title mapping, this item must be a * submenu - so we check the submenu items. + * + * We always enable the submenu item itself. We do this + * to prevent confusion (if the user is trying to use + * a disabled item, it's clearer to show that item disabled + * than to hide it in a disabled submenu), and to encourage + * the user to explore the interface (it makes it possible + * to browse the service list at any time). */ if (title == nil && [[item submenu] isKindOfClass: [NSMenu class]]) { NSArray *sub = [[item submenu] itemArray]; unsigned j; - shouldBeEnabled = NO; + shouldBeEnabled = YES; for (j = 0; j < [sub count]; j++) { NSMenuItem *subitem = [sub objectAtIndex: j]; @@ -1267,7 +1274,6 @@ static NSString *disabledName = @".GNUstepDisabled"; if ([self validateMenuItem: subitem] == YES) { - shouldBeEnabled = YES; /* Enabled menu */ subShouldBeEnabled = YES; } if (subWasEnabled != subShouldBeEnabled)