Index: chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
index be090ff18d4d8c9a55d477dd671deab3cad8a174..9c895ec1daa24e280ba1aba21d8733098a88290d 100644 |
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
@@ -274,6 +274,8 @@ function WallpaperManager(dialogDom) { |
}); |
this.document_.defaultView.addEventListener( |
'resize', this.onResize_.bind(this)); |
+ this.document_.defaultView.addEventListener( |
+ 'keydown', this.onKeyDown_.bind(this)); |
$('learn-more').href = LearnMoreURL; |
$('close-error').addEventListener('click', function() { |
$('error-container').hidden = true; |
@@ -653,6 +655,20 @@ function WallpaperManager(dialogDom) { |
}; |
/** |
+ * Close the active overlay on pressing the Escape key. |
bshe
2013/08/29 16:05:03
please document function parameter like this:
@par
François Beaufort
2013/08/29 16:32:59
Done.
|
+ */ |
+ WallpaperManager.prototype.onKeyDown_ = function(event) { |
+ if (event.keyCode == 27) { |
bshe
2013/08/29 16:05:03
There might be two overlays opened at the same tim
François Beaufort
2013/08/29 16:32:59
Setting "hidden" to true is not enough since it's
bshe
2013/08/29 17:10:35
Aha. you are right. We can't simply hide it. Would
|
+ var closeButtonSelector = '.overlay-container:not([hidden]) .close'; |
+ var closeButton = this.document_.querySelector(closeButtonSelector); |
+ if (closeButton) { |
+ closeButton.click(); |
+ event.preventDefault(); |
+ } |
+ } |
+ }; |
+ |
+ /** |
* Constructs the categories list. |
*/ |
WallpaperManager.prototype.initCategoriesList_ = function() { |