Index: third_party/polymer/v1_0/components-chromium/iron-menu-behavior/iron-menu-behavior-extracted.js |
diff --git a/third_party/polymer/v1_0/components-chromium/iron-menu-behavior/iron-menu-behavior-extracted.js b/third_party/polymer/v1_0/components-chromium/iron-menu-behavior/iron-menu-behavior-extracted.js |
index fd0cdc52a0edaeb109a874f306a5ad2e5fe61662..cfdf031fc0d74323d92f7b343795943d235baedb 100644 |
--- a/third_party/polymer/v1_0/components-chromium/iron-menu-behavior/iron-menu-behavior-extracted.js |
+++ b/third_party/polymer/v1_0/components-chromium/iron-menu-behavior/iron-menu-behavior-extracted.js |
@@ -223,6 +223,14 @@ |
return; |
} |
+ // Do not focus the selected tab if the deepest target is part of the |
+ // menu element's local DOM and is focusable. |
+ var rootTarget = /** @type {?HTMLElement} */( |
+ Polymer.dom(event).rootTarget); |
+ if (rootTarget !== this && typeof rootTarget.tabIndex !== "undefined" && !this.isLightDescendant(rootTarget)) { |
+ return; |
+ } |
+ |
this.blur(); |
// clear the cached focus item |
@@ -250,6 +258,7 @@ |
_onUpKey: function(event) { |
// up and down arrows moves the focus |
this._focusPrevious(); |
+ event.detail.keyboardEvent.preventDefault(); |
}, |
/** |
@@ -259,6 +268,7 @@ |
*/ |
_onDownKey: function(event) { |
this._focusNext(); |
+ event.detail.keyboardEvent.preventDefault(); |
}, |
/** |