diff options
author | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-18 06:08:02 +0000 |
---|---|---|
committer | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-18 06:08:02 +0000 |
commit | d50455dcd50e55914aab81546502df9148c3be84 (patch) | |
tree | 4570ac44bc2e46a9ff019456f10a716a020d2245 /chrome | |
parent | 87970dc239839fc987583ceb8b663dde2303ef97 (diff) | |
download | chromium_src-d50455dcd50e55914aab81546502df9148c3be84.zip chromium_src-d50455dcd50e55914aab81546502df9148c3be84.tar.gz chromium_src-d50455dcd50e55914aab81546502df9148c3be84.tar.bz2 |
Mac: allow Esc in the Omnibox to give up focus in fullscreen mode.
(Use the same "signal" as for stopping load: if we'd allow Esc to stop loading
the current page, we'll let Esc dismiss the Omnibox.)
BUG=35961
TEST=Enter fullscreen mode, Cmd-L to focus the Omnibox (and thus show it), Esc should revert to the original URL and give up focus (hiding the Omnibox). In normal, non-fullscreen mode, Esc should work as before.
Review URL: http://codereview.chromium.org/601091
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39337 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/cocoa/autocomplete_text_field.mm | 12 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.h | 3 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.mm | 4 |
3 files changed, 19 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/autocomplete_text_field.mm b/chrome/browser/cocoa/autocomplete_text_field.mm index 488a8f2..5d598a6 100644 --- a/chrome/browser/cocoa/autocomplete_text_field.mm +++ b/chrome/browser/cocoa/autocomplete_text_field.mm @@ -258,6 +258,18 @@ 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; } diff --git a/chrome/browser/cocoa/browser_window_controller.h b/chrome/browser/cocoa/browser_window_controller.h index c2a5ab8..f15e9a7 100644 --- a/chrome/browser/cocoa/browser_window_controller.h +++ b/chrome/browser/cocoa/browser_window_controller.h @@ -171,6 +171,9 @@ class TabStripModelObserverBridge; // Make the location bar the first responder, if possible. - (void)focusLocationBar; +// Make the (currently-selected) tab contents the first responder, if possible. +- (void)focusTabContents; + // Returns the frame of the regular (non-fullscreened) window (even if the // window is currently in fullscreen mode). The frame is returned in Cocoa // coordinates (origin in bottom-left). diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm index e719987..0b43b7a 100644 --- a/chrome/browser/cocoa/browser_window_controller.mm +++ b/chrome/browser/cocoa/browser_window_controller.mm @@ -1083,6 +1083,10 @@ [toolbarController_ focusLocationBar]; } +- (void)focusTabContents { + [[self window] makeFirstResponder:[tabStripController_ selectedTabView]]; +} + - (void)layoutTabs { [tabStripController_ layoutTabs]; } |