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 {