From 41ba8f57ba3e1c67b84efdc9994b03474a55ef67 Mon Sep 17 00:00:00 2001 From: michael starke Date: Thu, 6 Mar 2014 00:57:31 +0100 Subject: [PATCH] Search toggle now actually toggles. --- MacPass/MPDocument+Search.m | 7 ++++--- MacPass/MPToolbarDelegate.m | 7 +++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/MacPass/MPDocument+Search.m b/MacPass/MPDocument+Search.m index 44f46496..6aef9152 100644 --- a/MacPass/MPDocument+Search.m +++ b/MacPass/MPDocument+Search.m @@ -66,19 +66,20 @@ NSString *const kMPDocumentSearchResultsKey = @"kMPDocumentSearchResul return; // We need to read the button state } MPEntrySearchFlags toggleFlag = [sender tag]; + MPEntrySearchFlags newFlags = MPEntrySearchNone; switch([sender state]) { case NSOffState: toggleFlag ^= MPEntrySearchAllFlags; + newFlags = self.activeFlags & toggleFlag; break; case NSOnState: - /* On is fine */ + newFlags = self.activeFlags | toggleFlag; break; default: NSAssert(NO, @"Internal state is inconsistent"); return; } - MPEntrySearchFlags newFlags = self.activeFlags & toggleFlag; - if(newFlags == self.activeFlags) { + if(newFlags != self.activeFlags) { self.activeFlags = (newFlags == MPEntrySearchNone) ? MPEntrySearchTitles : newFlags; [[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidChangeSearchFlags object:self]; [self updateSearch:self]; diff --git a/MacPass/MPToolbarDelegate.m b/MacPass/MPToolbarDelegate.m index 5d30af43..1c3ef5e8 100644 --- a/MacPass/MPToolbarDelegate.m +++ b/MacPass/MPToolbarDelegate.m @@ -255,8 +255,11 @@ NSString *const MPToolbarItemSearch = @"TOOLBAR_SEARCH"; if(_displayModeBeforeSearch == NSToolbarDisplayModeLabelOnly) { [self.toolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel]; } - [[self.searchField window] makeFirstResponder:self.searchField]; - [self.searchField selectText:self]; + /* only make the searchfield first responder if it's not aleady in an active search */ + if(![self.searchField currentEditor]) { + [[self.searchField window] makeFirstResponder:self.searchField]; + [self.searchField selectText:self]; + } } - (void)_didExitSearch:(NSNotification *)notification {