diff options
author | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-26 06:11:20 +0000 |
---|---|---|
committer | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-26 06:11:20 +0000 |
commit | a4dd2973445111a54aebba41a3774761d8d16b67 (patch) | |
tree | 72b88e89f85b4a95b7106c0211b1026187024ccc | |
parent | 22a91288c8d235afb45932dd7633982a04c389f0 (diff) | |
download | chromium_src-a4dd2973445111a54aebba41a3774761d8d16b67.zip chromium_src-a4dd2973445111a54aebba41a3774761d8d16b67.tar.gz chromium_src-a4dd2973445111a54aebba41a3774761d8d16b67.tar.bz2 |
Close overlays when the user hits ESC key.
BUG=chromium-os:7024
TEST=manually closing overlays by hitting ESC key.
Review URL: http://codereview.chromium.org/4076004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63861 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/resources/options/options_page.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/chrome/browser/resources/options/options_page.js b/chrome/browser/resources/options/options_page.js index 4afad5b..efc9e1c 100644 --- a/chrome/browser/resources/options/options_page.js +++ b/chrome/browser/resources/options/options_page.js @@ -68,6 +68,9 @@ cr.define('options', function() { } }; + /** + * Clears overlays (i.e. hide all overlays). + */ OptionsPage.clearOverlays = function() { for (var name in OptionsPage.registeredOverlayPages_) { var page = OptionsPage.registeredOverlayPages_[name]; @@ -76,6 +79,17 @@ cr.define('options', function() { }; /** + * Clears overlays if the key event is ESC. + * @param {Event} e Key event. + * @private + */ + OptionsPage.clearOverlaysOnEsc_ = function(e) { + if (e.keyCode == 27) { // Esc + OptionsPage.clearOverlays(); + } + }; + + /** * Shows the tab contents for the given navigation tab. * @param {!Element} tab The tab that the user clicked. */ @@ -208,6 +222,8 @@ cr.define('options', function() { if (this.isOverlay) { var overlay = $('overlay'); overlay.classList.remove('hidden'); + document.addEventListener('keydown', + OptionsPage.clearOverlaysOnEsc_); } else { var banner = $('managed-prefs-banner'); banner.style.display = this.managed ? 'block' : 'none'; @@ -225,6 +241,8 @@ cr.define('options', function() { if (this.isOverlay) { var overlay = $('overlay'); overlay.classList.add('hidden'); + document.removeEventListener('keydown', + OptionsPage.clearOverlaysOnEsc_); } this.pageDiv.style.display = 'none'; if (this.tab) { |