diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-24 21:56:30 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-24 21:56:30 +0000 |
commit | c87b9b15489eecda01ef7f8f42d11a3b86a2f1de (patch) | |
tree | 6f8e8ebd550d1b5e4a86227b0a2e747f04a82337 /chrome | |
parent | bb114701ea8384781b4b3b51c45040a21e2d60fe (diff) | |
download | chromium_src-c87b9b15489eecda01ef7f8f42d11a3b86a2f1de.zip chromium_src-c87b9b15489eecda01ef7f8f42d11a3b86a2f1de.tar.gz chromium_src-c87b9b15489eecda01ef7f8f42d11a3b86a2f1de.tar.bz2 |
Mac: Ignore omnibox selection changes that come from programmatic events
BUG=56149,56720
TEST=start typing a url, arrow around in the autocomplete popup menu -- the results should not change.
Review URL: http://codereview.chromium.org/3397019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60530 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/cocoa/location_bar/autocomplete_text_field.mm | 21 | ||||
-rw-r--r-- | chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.mm | 27 |
2 files changed, 27 insertions, 21 deletions
diff --git a/chrome/browser/cocoa/location_bar/autocomplete_text_field.mm b/chrome/browser/cocoa/location_bar/autocomplete_text_field.mm index 2598d10..4f18f68 100644 --- a/chrome/browser/cocoa/location_bar/autocomplete_text_field.mm +++ b/chrome/browser/cocoa/location_bar/autocomplete_text_field.mm @@ -253,27 +253,6 @@ } } -- (BOOL)textView:(NSTextView*)textView doCommandBySelector:(SEL)cmd { - // TODO(shess): Review code for cases where we're fruitlessly attempting to - // work in spite of not having an observer_. - if (observer_ && observer_->OnDoCommandBySelector(cmd)) { - return YES; - } - - // If the escape key was pressed and no revert happened and we're in - // fullscreen mode, make it resign key. - if (cmd == @selector(cancelOperation:)) { - BrowserWindowController* windowController = - [BrowserWindowController browserWindowControllerForView:self]; - if ([windowController isFullscreen]) { - [windowController focusTabContents]; - return YES; - } - } - - return NO; -} - // When the window resigns, make sure the autocomplete popup is no // longer visible, since the user's focus is elsewhere. - (void)windowDidResignKey:(NSNotification*)notification { diff --git a/chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.mm b/chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.mm index 9713e10..4904e50 100644 --- a/chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.mm +++ b/chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.mm @@ -308,6 +308,33 @@ } } +- (void)doCommandBySelector:(SEL)cmd { + // TODO(shess): Review code for cases where we're fruitlessly attempting to + // work in spite of not having an observer. + AutocompleteTextFieldObserver* observer = [self observer]; + + if (observer && observer->OnDoCommandBySelector(cmd)) { + // The observer should already be aware of any changes to the text, so + // setting |textChangedByKeyEvents_| to NO to prevent its OnDidChange() + // method from being called unnecessarily. + textChangedByKeyEvents_ = NO; + return; + } + + // If the escape key was pressed and no revert happened and we're in + // fullscreen mode, make it resign key. + if (cmd == @selector(cancelOperation:)) { + BrowserWindowController* windowController = + [BrowserWindowController browserWindowControllerForView:self]; + if ([windowController isFullscreen]) { + [windowController focusTabContents]; + return; + } + } + + [super doCommandBySelector:cmd]; +} + - (void)setAttributedString:(NSAttributedString*)aString { NSTextStorage* textStorage = [self textStorage]; DCHECK(textStorage); |