summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-24 21:56:30 +0000
committerisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-24 21:56:30 +0000
commitc87b9b15489eecda01ef7f8f42d11a3b86a2f1de (patch)
tree6f8e8ebd550d1b5e4a86227b0a2e747f04a82337 /chrome
parentbb114701ea8384781b4b3b51c45040a21e2d60fe (diff)
downloadchromium_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.mm21
-rw-r--r--chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.mm27
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);