From 5cd284cb369cbaf3b5db252d7feddadd4306b381 Mon Sep 17 00:00:00 2001 From: Didier Korthoudt Date: Mon, 7 May 2018 21:52:06 +0200 Subject: [PATCH] FIXED: CPSearchField menu diverged from modern Cocoa (#2697) --- AppKit/CPSearchField.j | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/AppKit/CPSearchField.j b/AppKit/CPSearchField.j index f58e5543f..4c65f04dc 100644 --- a/AppKit/CPSearchField.j +++ b/AppKit/CPSearchField.j @@ -531,19 +531,16 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat } /*! - Provides the common case items for a recent searches menu. If there are not recent searches, - displays a single disabled item: - - No Recent Searches + Provides the common case items for a recent searches menu. If there are 1 more recent searches, it displays: - Recent Searches - recent search 1 - recent search 2 - etc. + Clear --------------------- - Clear Recent Searches + Recent Searches + recent search 1 + recent search 2 + etc. If you wish to add items before or after the template, you can. If you put items before, a separator will automatically be placed before the default template item. @@ -568,6 +565,13 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat var template = [[CPMenu alloc] init], item; + item = [[CPMenuItem alloc] initWithTitle:@"Clear" + action:@selector(_searchFieldClearRecents:) + keyEquivalent:@""]; + [item setTag:CPSearchFieldClearRecentsMenuItemTag]; + [item setTarget:self]; + [template addItem:item]; + item = [[CPMenuItem alloc] initWithTitle:@"Recent Searches" action:nil keyEquivalent:@""]; @@ -582,20 +586,6 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat [item setTarget:self]; [template addItem:item]; - item = [[CPMenuItem alloc] initWithTitle:@"Clear Recent Searches" - action:@selector(_searchFieldClearRecents:) - keyEquivalent:@""]; - [item setTag:CPSearchFieldClearRecentsMenuItemTag]; - [item setTarget:self]; - [template addItem:item]; - - item = [[CPMenuItem alloc] initWithTitle:@"No Recent Searches" - action:nil - keyEquivalent:@""]; - [item setTag:CPSearchFieldNoRecentsMenuItemTag]; - [item setEnabled:NO]; - [template addItem:item]; - return template; } @@ -633,7 +623,6 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat var recentItem = [[CPMenuItem alloc] initWithTitle:[_recentSearches objectAtIndex:recentIndex] action:itemAction keyEquivalent:[item keyEquivalent]]; - [recentItem setIndentationLevel:1]; [item setTarget:self]; [menu addItem:recentItem]; } @@ -691,7 +680,7 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat - (void)_showMenu { - if (_searchMenu === nil || [_searchMenu numberOfItems] === 0 || ![self isEnabled]) + if (_searchMenu === nil || [_searchMenu numberOfItems] === 0 || ![self isEnabled] || ([_recentSearches count] === 0)) return; var aFrame = [[self superview] convertRect:[self frame] toView:nil],