Skip to content

Commit 754afba

Browse files
committed
Let the file view search field grab focus only when it is required.
1 parent 21b8f38 commit 754afba

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

GLFileView.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,7 @@ - (NSString *)numberOfMatchesString
703703

704704
- (void) updateSearch
705705
{
706-
[view search:searchField update:YES direction:YES];
706+
[view search:searchField update:YES grabFocus:NO direction:YES];
707707
[self updateSearchUI];
708708
}
709709

@@ -725,7 +725,7 @@ - (IBAction)searchFieldChanged:(id)sender
725725
{
726726
BOOL update=[[searchField stringValue] isEqualToString:searchString]? NO: YES;
727727
searchString=[searchField stringValue];
728-
[view search:searchField update:update direction:YES];
728+
[view search:searchField update:update grabFocus:YES direction:YES];
729729
[self updateSearchUI];
730730
}
731731

@@ -734,9 +734,9 @@ - (IBAction)stepperPressed:(id)sender {
734734
NSInteger selectedSegment = [sender selectedSegment];
735735

736736
if (selectedSegment == 0)
737-
[view search:searchField update:NO direction:NO];
737+
[view search:searchField update:NO grabFocus:YES direction:NO];
738738
else
739-
[view search:searchField update:NO direction:YES];
739+
[view search:searchField update:NO grabFocus:YES direction:YES];
740740
}
741741

742742
@end

SearchWebView.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
- (void)highlightAllOccurencesOfString:(NSString*)str direction:(BOOL)forward;
1717
- (void)highlightAllOccurencesOfString:(NSString*)str inNode:(DOMNode *)node;
1818
- (void)removeAllHighlights;
19-
- (void)search:(NSSearchField *)sender update:(BOOL)update direction:(BOOL)forward;
19+
- (void)search:(NSSearchField *)sender update:(BOOL)update grabFocus:(BOOL)grabFocus direction:(BOOL)forward;
2020

2121
@end

SearchWebView.m

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,26 @@ - (void)highlightAllOccurencesOfString:(NSString*)str update:(BOOL)update direct
6868
}
6969
}
7070

71-
- (void)search:(NSSearchField *)sender update:(BOOL)update direction:(BOOL)forward
71+
- (void)search:(NSSearchField *)sender update:(BOOL)update grabFocus:(BOOL)grabFocus direction:(BOOL)forward
7272
{
7373
NSString *searchString = [sender stringValue];
7474

7575
DLog(@"searchString:%@",searchString);
76-
77-
// Back-up the search field's caret position so we can restore it later
78-
NSRange searchFieldSelectedRange = [[sender currentEditor] selectedRange];
76+
77+
NSRange searchFieldSelectedRange;
78+
if (grabFocus) {
79+
// Back-up the search field's caret position so we can restore it later
80+
searchFieldSelectedRange = [[sender currentEditor] selectedRange];
81+
}
7982

8083
if([searchString length]>0){
8184
[self highlightAllOccurencesOfString:searchString update:update direction:forward];
8285

83-
// Bring the search field back in focus and restore its caret position
84-
[[sender window] makeFirstResponder:sender];
85-
[[sender currentEditor] setSelectedRange:searchFieldSelectedRange];
86+
if (grabFocus) {
87+
// Bring the search field back in focus and restore its caret position
88+
[[sender window] makeFirstResponder:sender];
89+
[[sender currentEditor] setSelectedRange:searchFieldSelectedRange];
90+
}
8691

8792
if(result!=nil) {
8893
[self setSelectedDOMRange:result affinity:NSSelectionAffinityDownstream];

0 commit comments

Comments
 (0)